微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Hadoop映射减少错误:无法运行程序

如何解决Hadoop映射减少错误:无法运行程序

我已经尝试很长时间了,但是我不明白为什么它失败了。我有一个.sh脚本开始执行Hadoop mapreduce作业:

yarn --config /etc/hadoop/conf2 jar hadoop-streaming.jar \
     -D mapreduce.job.name="Compare TASS text with others. Date:${CALC_DATE}" \
     -D mapreduce.job.maps=36 \
     -D mapreduce.job.reduces=1 \
     -D mapreduce.job.reduce.slowstart.completedmaps=0.99 \
     -D mapreduce.task.timeout=7200000 \
     -input ${HADOOP_DIR}/other_texts.txt \
     -output ${HADOOP_DIR}/compare_pairs \
     -file ./tass/compare_texts.py \
     -file ./tass/reduce_text_dist.py \
     -mapper compare_texts.py \
     -reducer reduce_text_dist.py

我指向刚安装的集群的配置(但我没有对其进行管理),并且命令开始产生错误

Caused by: java.io.IOException: Cannot run program "/tmp/nm/usercache/matilda_dev/appcache/application_1601526003473_0137/container_e04_1601526003473_0137_01_000050/./compare_texts.py": error=2,No such file or directory

请注意,我指的是用户当前工作目录的相对路径。

我试图显式设置可执行文件绝对路径,但是错误保持不变。

我的mapper和reducer有一个指向Python解释器的指针:

#!/usr/bin/python3.6

Python脚本是可执行的:

 ls -l tass/compare_texts.py
-rwxrwxr-x 1 deploy deploy 4836 Oct 23 16:16 tass/compare_texts.py

如果我尝试(在Internet上的某些示例中)将映射器更改为

-mapper "/usr/bin/python compare_texts.py" \

错误

INFO mapreduce.Job: Task Id : attempt_1601526003473_0140_m_000027_2,Status : Failed
Error: java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess Failed with code 1

此选项:

-mapper "/usr/bin/python3.6 compare_texts.py" \

错误

INFO mapreduce.Job: Task Id : attempt_1601526003473_0142_m_000023_2,Status : Failed
Error: java.lang.RuntimeException: Error in configuring object

我没办法解决这个问题。您有什么建议吗?

有关信息,旧的Hadoop集群已正确处理了以下命令:

yarn jar hadoop-streaming.jar \
     -D mapreduce.job.name="Compare TASS text with others. Date:${CALC_DATE}" \
     -D mapreduce.job.maps=36 \
     -D mapreduce.job.reduces=1 \
     -D mapreduce.job.reduce.slowstart.completedmaps=0.99 \
     -D mapreduce.task.timeout=7200000 \
     -input ${HADOOP_DIR}/other_texts.txt \
     -output ${HADOOP_DIR}/compare_pairs \
     -mapper tass/compare_texts.py \
     -reducer tass/reduce_text_dist.py \
     -file common \
     -file tass \
     -file $FILE_PERIX

它们不适用于新群集,并且当前命令集不适用于旧群集。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。