Hadoop 上的 MrJob 无法导入库
MrJob on Hadoop can't import libraries
我正在使用 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.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 使用库导入?
自己找答案
我必须做的 - 是在我所有的节点(不仅仅是主节点)
上安装这个库
我正在使用 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.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 使用库导入?
自己找答案
我必须做的 - 是在我所有的节点(不仅仅是主节点)
上安装这个库