simple-yarn-app不能启动的解决方案 && 查看运行结果

开始运行是这样的,args[1]是用一个Integer来接收的,又不知道/bin/date的作用,就准备把'/bin/date'删除

simple-yarn-app不能启动的解决方案 && 查看运行结果

再次运行结果如图所示,application任务 FAILED了。

simple-yarn-app不能启动的解决方案 && 查看运行结果

找了半天上gitHub点击打开链接上看到了这个回答

simple-yarn-app不能启动的解决方案 && 查看运行结果

然后在args[2]上加了地址前缀"hdfs://",终于可以运行了。

simple-yarn-app不能启动的解决方案 && 查看运行结果

----------------------------------------------------------------------------------------------------------------

然后不知道里面的任务是否运行成功/ 找不到运行结果

发现传入的 args[0] 应该是一个shell命令 , /bin/date 是打印当前时间的shell脚本。

则运行命令改为:hadoop jar simpleapp.jar /bin/date 1 hdfs:///apps/simple/simpleapp.jar

但是在8088端口下的Application  中的 Logs中找不到 /bin/date  命令的输出。。。

simple-yarn-app不能启动的解决方案 && 查看运行结果

simple-yarn-app不能启动的解决方案 && 查看运行结果

simple-yarn-app不能启动的解决方案 && 查看运行结果

通过查看Application的执行过程:

    1.RM分配一个Container 运行 ApplicationMaster

    2.ApplicationMaster 向RM 申请Container 运行命令

可以发现ApplicationMaster  和 运行的命令 不是一个 Container , stdout文件自然也不同

去寻找Container 的logs:

simple-yarn-app不能启动的解决方案 && 查看运行结果

进入Local logs

simple-yarn-app不能启动的解决方案 && 查看运行结果

进入userlogs/

simple-yarn-app不能启动的解决方案 && 查看运行结果

进入最后一个文件夹

simple-yarn-app不能启动的解决方案 && 查看运行结果

我们发现有两个Container文件夹,第一个是ApplicationMaster 的内容,第二个是我们执行的任务内容,我们进入第二个

simple-yarn-app不能启动的解决方案 && 查看运行结果

查看stdout文件:

simple-yarn-app不能启动的解决方案 && 查看运行结果

可以看到我们的/bin/date 命令的执行结果。。 搞定