hadoop map reduce错误:程序无法运行

tjvv9vkg  于 2021-05-27  发布在  Hadoop
关注(0)|答案(0)|浏览(324)

我一直在努力使这项工作,但我不明白为什么它失败了。我有一个.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

如果我尝试(根据互联网上的一些例子)将Map器更改为

-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

它们在新集群上不起作用,而当前的一组命令在旧集群上不起作用。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题