如何找到正在运行我的工作的确切hadoop jar命令?

时间:2015-06-02 10:30:38

标签: hadoop yarn oozie cascading scalding

我正在使用CDH5.4。我正在运行一个hadoop作业,从命令行看起来没问题(只需用hadoop jar运行)。但是,如果我从yarn运行它,它会使用单个映射器静默完成,而不是使用reducer。我真的怀疑两个'运行'都运行相同的命令。但是,我想确定一下。所以我看一下日志:

(注意它是一个带有自定义运行器的scalding作业 - 当我从命令行运行它时一切正常。)

/container_1432733015407_0953_01_000001/container_1432733015407_0953_01_000001/user/stdout/?start=0

我看到了类似的东西:

Main class        : org.apache.oozie.action.hadoop.JavaMain

Maximum output    : 2048

Arguments         :
                    -D
                    oneparam=value
                    -D
                    secondparam=value

所以我把它们变成了命令行。

并使用类似

的方式运行它

hadoop jar MyScaldingRunner -D oneparam=value -D secondparam=value它运行得很好并产生了结果。

我可以通过hadoop jar + oozie查看hadoop正在运行的SAME EXACT yarn命令行来运行吗?因为从那边它只是默默地完成!

1 个答案:

答案 0 :(得分:1)

我没有直接回答您的问题,但JDiagnostics可以帮助您重新创建所需的参数,例如类路径或环境变量。这是一个example,您可以在运行之前放入程序的开头:

  LOG.info(new DefaultQuery().call())