Hadoop上的MrJob无法导入库

时间:2016-08-13 07:35:21

标签: python hadoop mapreduce cloudera-cdh mrjob

我正在使用CDH 5.7.2和MrJob提交MapReduce作业

当我尝试使用 localmode时,一切正常,但是当我使用-r hadoop时,它会出现以下错误:

 Task Id : attempt_1471071791922_0005_m_000001_2, Status : FAILED
Error: java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 1
        at org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.java:325)
        at org.apache.hadoop.streaming.PipeMapRed.mapRedFinished(PipeMapRed.java:538)
        at org.apache.hadoop.streaming.PipeMapper.close(PipeMapper.java:130)
        at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:61)
        at org.apache.hadoop.streaming.PipeMapRunner.run(PipeMapRunner.java:34)
        at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:453)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343)
        at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1693)
        at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)

当我尝试导入库时,我发现问题发生

import geopy
from geopy.distance import great_circle

这是我执行脚本的方式:

python test2.py -r hadoop hdfs:///user/dataset/test_data --hadoop-streaming-jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-streaming.jar

P.S。 MrJob不能使用hadoop-streaming-jar,所以我手动指定了

如何使用库导入在Hadoop 上执行MapReduce jon?

1 个答案:

答案 0 :(得分:0)

自己找到答案。

我需要做的是在所有节点上安装此库(不仅仅是在主节点上)