我真的只是想找一些社区大脑寻找一些线索来弄清楚我遇到的问题是什么。
我正在用RHadoop(rmr2,v3.0.0)编写MR作业,事情很棒 - 带有HDFS,映射,缩减的IO。没问题。生活很美好。
我试图安排Apache Oozie的工作,并遇到了一些问题:
Error in mr(map = map, reduce = reduce, combine = combine, vectorized.reduce, :
hadoop streaming failed with error code 1
我已经阅读了rmr2调试指南,但没有任何内容真正进入stderr,因为在任何事情都被安排之前,作业失败了。
在我的脑海中,一切都指向环境的差异。但是,Oozie作为同一个用户运行工作,我能够通过cli运行所有内容,并且所有R环境变量(使用Sys.getenv()
获取)都是相同的,除了那里'用Oozie设置一些额外的类路径。
我可以发布更多的操作系统或Hadoop版本和配置详细信息,但是一些特定于版本的错误看起来像是一个红色的鲱鱼,因为一切都在命令行运行良好。
任何人都有任何想法,在寻找这头野兽时可能会有什么有用的后续步骤?
更新
我覆盖了基础包中的system
函数,以记录用户,节点的主机名以及在内部调用系统之前执行的命令。所以在实际执行任何系统调用之前,我在stderr中得到类似下面的内容:
user@host.name
/usr/bin/hadoop jar /usr/lib/hadoop-mapreduce/hadoop-streaming-2.2.0.2.0.6.0-102.jar ...
使用Oozie运行时,stderr中打印的命令失败,退出状态为1.当我在user@host.name
上运行命令时,它成功运行。因此,与SAME节点上的SAME用户完全相同的命令在Oozie中失败,但是从cli成功运行。