linux查看进程执行日志,如何查看MapReduce执行的程序中的输出日志

我们开发程序的时候,好多人都喜欢用sysout输出内容来查看运行情况。但是在MR程序里写了之后,却不知道去哪里查找,可以参考这篇文章。

第一种方法,我们可以在MapReduce任务查看页面找到这些日志

1.在MapReduce任务查看页面找到任务,点击进入

c7b36782dc5acacf0d352697f86d0261.png

2.在任务详情页最下面由执行了该任务的节点

9a6a39b13fea7eb9940830dceb8e25c6.png

3.在节点的web地址后面加上logs/userlogs就能看到application列表,选择自己要找的

fdc086303db94201d93721ed61b2e726.png

4.依次查看container

0fee4659513fb9a9176a9b4cbd0e2321.png

5.从container进去之后就是最终要找的日志了

f44622dcb3fd9cb99360cc1fa2a94cbb.png

stderr:输出System.err输出的信息;

stdout:输出System.out输出的信息

syslog:输出日志工具(比如Slf4j,log4j)输出的信息

可以看出通过管理页面查找sysout日志是十分麻烦的,而且mapper和reducer的日志不在一起,如果有多个reducer的话查看起来更是不方便

我们的代码(mapper,reducer)是放到了Yarn上面去执行,Yarn的日志存放地址是在yarn-env.sh中配置的,如下

f8fb00951ef6a93c3cdd950bc33f29f5.png

我们可以去节点上面查找;为了方便快捷  直接用脚本搞定

scanMRLog.sh

if [ $# -le 0]then

echo缺少参数

exit1

fi# 从Hadoop的配置文件获取所有datanodefor n in `cat ${HADOOP_HOME}/etc/hadoop/slaves`do

echo ===========查看节点 $n============# 下面的~/logs/yarn 是在yarn-site.xml中设定的日志目录ssh $n "cat ~/logs/yarn/userlogs/${1}/container_*/*out"

done

查看的时候只需要一行命令搞定,mapper,reducer里面的输出就都能看到了

# 命令中的appId从MRWeb管理端就能看到sh test.sh application_1479689852668_0197

6097b2a41dcdfb4d528cf018ade07095.png

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值