如何查看MapReduce执行的程序中的输出日志
我们开发程序的时候,好多人都喜欢用sysout输出内容来查看运行情况。但是在MR程序里写了之后,却不知道去哪里查找,可以参考这篇文章。
第一种方法,我们可以在MapReduce任务查看页面找到这些日志
1.在MapReduce任务查看页面找到任务,点击进入
2.在任务详情页最下面由执行了该任务的节点
3.在节点的web地址后面加上logs/userlogs就能看到application列表,选择自己要找的
4.依次查看container
5.从container进去之后就是最终要找的日志了
- stderr:输出System.err输出的信息;
- stdout:输出System.out输出的信息
- syslog:输出日志工具(比如Slf4j,log4j)输出的信息
可以看出通过管理页面查找sysout日志是十分麻烦的,而且mapper和reducer的日志不在一起,如果有多个reducer的话查看起来更是不方便
我们的代码(mapper,reducer)是放到了Yarn上面去执行,Yarn的日志存放地址是在yarn-env.sh中配置的,如下
我们可以去节点上面查找;为了方便快捷 直接用脚本搞定
scanMRLog.sh
if [ $# -le 0 ] then echo 缺少参数 exit 1 fi # 从Hadoop的配置文件获取所有datanode for 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
相关推荐
tomli 2020-07-26
ErixHao 2020-05-16
zhangll00 2020-05-07
香帅 2020-04-15
strongyoung 2020-04-11
sujins 2020-03-06
lixiaotao 2020-03-05
tomli 2020-03-05
WeiHHH 2020-02-23
zzjmay 2020-02-23
通过实现MapReduce计算结果保存到MySql数据库过程,掌握多种方式保存计算结果的技术,加深了对MapReduce的理解;创建maven项目,项目名称hdfs,这里不再说明。红色部分为增加内容:
大白配小猪 2020-02-09
IT智囊 2020-01-01
yogoma 2020-01-10
sujins 2020-01-09