【发布时间】:2013-08-07 14:25:10
【问题描述】:
近 2 天来,我一直在试图弄清楚如何执行我的 Map/Reduce 作业。我不断收到 ClassNotFound 异常。
我已经使用 Cloudera CDH4.3.0 在 Ubuntu 中安装了一个 Hadoop 集群。 .java 文件(DemoJob.java 不在任何包中)位于名为 inputs 的文件夹中,所有必需的 jar 文件都位于 inputs/lib 中。
-
我使用以下方法编译 .java 文件:
javac -cp "inputs/lib/hadoop-common.jar:inputs/lib/hadoop-map-reduce-core.jar" -d Demo inputs/DemoJob.java(在链接中,它说 -cp 应该是“/usr/lib/hadoop/:/usr/lib/hadoop/client-0.20/”。但我没有那些我系统中的文件夹)
-
使用以下方法创建 jar 文件:
jar cvf Demo.jar Demo 将 2 个输入文件移动到 HDFS (现在这是我感到困惑的地方。我是否也需要将 jar 文件移动到 HDFS?链接中没有这样说。但如果它不在 HDFS 中,那么 hadoop jar .. 命令如何工作吗?我的意思是它如何结合Linux系统中的jar文件和HDFS中的输入文件?)
-
我使用以下代码运行我的代码:
hadoop jar Demo.jar DemoJob /Inputs/Text1.txt /Inputs/Text2.txt /Outputs
我不断收到ClassNotFoundException : DemoJob。
请有人帮忙。
【问题讨论】: