0

我真的只是想从社区的大脑中寻找一些线索来弄清楚我遇到的问题是怎么回事。

我正在使用 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基本包中的函数来记录用户、节点的主机名以及在内部调用系统之前正在执行的命令。因此,在实际执行任何系统调用之前,我在标准错误中得到如下内容: 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 用户的 EXACT 相同命令在 Oozie 中失败,但从 cli 成功运行。

4

0 回答 0