在hadoop中执行python mapreduce任务时出错?

时间:2014-07-01 20:14:47

标签: python hadoop hadoop2

我已经为python中的mapper示例编写了reducerwordcount。这些脚本作为独立脚本运行良好。但是在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)

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

请你试试

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包含保存脚本的代码文件。

相关问题