您的位置:首页 > 运维架构 > Shell

hadoop mapreduce 程序调试日志合并查看shell

2016-12-14 23:40 465 查看

hadoop mapreduce 程序调试日志合并查看shell

上一篇文章介绍了如何在web中查看日志并且进行调试。现在介绍一种通过shell方式进行处理调试信息。
本文阅读前提:
1、已经读完上一篇文章(http://blog.csdn.net/wild46cat/article/details/53641765),在本文中对重复的设置和运行不做说明。

好,下面上货。

首先是shell
#!/bin/bash

#the application dir application_1481720192563_0001
param=$1
#local dir store stderr stdout and syslog
locallogdir='/home/user/xyshell/log/'
stderrfile=$locallogdir'stderr'
stdoutfile=$locallogdir'stdout'
syslogfile=$locallogdir'syslog'
syslogshuffle=$locallogdir'syslogshuffle'

#yarnlog dir which is set in yarn-site.xml
yarnlogpath='/home/hadoop/yarn/log/'

applicationname=$yarnlogpath$param

iparray=(host1 host2 host3)
user='user'
cmd="scp -r $applicationname $user@host1:$locallogdir"

echo $applicationname
echo $cmd
echo `date` > $stderrfile
echo `date` > $stdoutfile
echo `date` > $syslogfile
echo `date` > $syslogshuffle

for ip in ${iparray[*]}
do
echo "=========$ip==========="
# copy from host1 host2 host3
#	echo "$cmd"
ssh -t $user@$ip '\'$cmd'\'

echo "=========$ip==========="
echo
done

if [ -d $locallogdir$param ]
then
cd $locallogdir$param
subdirarray=`ls | sort`
for x in $subdirarray
do
cd $x
cat stderr >> $stderrfile
cat stdout >> $stdoutfile
cat syslog >> $syslogfile
if [ -f syslog.shuffle ]
then
cat syslog.shuffle >> $syslogshuffle
fi
cd ..
done
fi


下面是运行结果:



这样,在查看stdout就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息