**
デバッグのMapReduceプログラム
**
1. Log4によるMRのコードのデバッグを請求されます。
Logger logger = Logger(xxx.class);
logger.info()
通过上述操作 输出的结果,只能查看job的信息,而Map,Reduce的信息看不到。
需要开启Yarn 历史日志 ,日志归档
履歴ログを有効にする方法2.yarnクラスター、ログのアーカイブ
1. 配置文件(每台服务器均配置)
mapred-site.xml 历史服务
<property>
<name>mapreduce.jobhistory.address</name>
<!--历史服务在主节点上-->
<value>hadoop12:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop12:19888</value>
</property>
yarn-site.xml 日志聚合
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!--秒-->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
2. 启动进程(主节点启动)
sbin/mr-jobhistory-daemon.sh start historyserver
配置完成后重启HDFS和Yarn集群
sbin/mr-jobhistory-daemon.sh stop historyserver
<!-- 然后访问hadoop12:19888的webUi页面 查看Map,Reduce的日志-->
3.別の方法:(また、一般的な方法を)解決するためのシェルスクリプトを使用します
- 閉じるログの集約
- など/ Hadoopの/ yarn-env.shファイルの設定
export YARN_LOG_DIR=~/logs/yarn
export YARN_PID_DIR=~/data/yarn
- スクリプト(scanMRLog.sh)を作成
標準エラー:出力System.errの出力
標準出力:の出力のSystem.out出力
シスログ:ログ出力ツール(例えばSLF4Jとして、log4jの)情報出力
scanMRLog.sh [APPLICATIONID] [LOGTYPEオプション]
if [ $# -le 0 ]
then
echo 缺少参数
exit 1
fi
logtype=out
if [ $# -ge 1 ]
then
logtype=${2}
fi
for n in `cat /opt/install/hadoop-2.5.2/etc/hadoop/slaves`
do
echo ===========查看节点 $n============
ssh $n "cat ~/logs/yarn/userlogs/${1}/container_*/*${logtype}|grep com.baidu"
done
コンフィギュレーションと再起動HDFSサービスピラン後
- スクリプトを実行します。
1. 修改脚本权限 chmod 744 scanMRLog.sh
2. ./scanMRLog.sh application_1558968514803_0001
このログには情報がコンソールに出力されます。