我已经用Python语言为wordcount示例编写了mapper和reducer。这些脚本作为独立脚本运行得很好。但在hadoop中运行时出现错误。
我正在使用hadoop2.2
下面是我的命令:
hadoop jar share/hadoop/tools/sources/hadoop-streaming*.jar -mapper wordmapper.py -reducer wordreducer.py -file wordmapper.py -file wordreducer.py -input /data -output/output/result7
Exception in thread "main" java.lang.ClassNotFoundException: share.hadoop.tools.sources.hadoop-streaming-2.2.0-test-sources.jar
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:249)
at org.apache.hadoop.util.RunJar.main(RunJar.java:205)如何解决这个问题?
发布于 2014-07-17 14:34:47
你能试一下吗?
hadoop jar $HADOOP_PREFIX/hadoop/tools/sources/hadoop-streaming*.jar -mapper 'wordmapper.py‘-reducer 'wordreducer.py’-file $CODE_FOLDER/wordmapper.py -file $CODE_FOLDER/wordreducer.py -input /data -output /output/result7
其中$HADOOP_PREFIX是放置hadoop在计算机上的文件夹位置。例如/usr/local/用于我的机器。如果您可以手动访问该位置并检查该jar是否存在。
$CODE_FOLDER包含保存脚本的代码文件。
https://stackoverflow.com/questions/24518565
复制相似问题