我在MacBook上利用Apache的资源在MacBook上编写了一个基本的MapReduce程序:
https://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html
完成后,我导出了我的项目的jar,并通过SSH将其转移到我的EC2实例中。
在那之后,我通过EC2实例的终端运行了此命令:
/usr/local/hadoop/bin/hadoop jar test.jar com.map.reduce games.tar.gz output
在EC2上安装hadoop的位置是/usr/local/hadoop/bin/hadoop
,其中test.jar
是传输的jar文件,而com.map.reduce是托管我所有类的包名称。 games.tar.gz
是我将要使用的目录,输出是我想要查看结果的位置。
但是我得到了例外:
Exception in thread "main" java.lang.ClassNotFoundException:
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:374)
at org.apache.hadoop.util.RunJar.run(RunJar.java:311)
at org.apache.hadoop.util.RunJar.main(RunJar.java:232)
我想知道这是否是我在本地使用的JARS的问题。任何帮助表示赞赏。