Hadoop日志小结

一、日志分类


,1,进程日志

,进程日志即为hadoop各个守护进程的日志,例如ResourceManager, NodeManager, NameNode, DataNode等守护进程。集群启动或者运行期间出现异常,首先应该查看进程日志,它是系统排障的重要工具。默认位置为$ {HADOOP_HOME}/日志。可以在mapred-env.sh和yarn-env.sh中分别指定HADOOP_MAPRED_LOG_DIR和YARN_LOG_DIR变量来改变默认位置。

,进程日志是滚动记录的,当日志达到指定大小之后,会滚动写入下一个文件。可以在$ HADOOP_HOME/etc/hadoop/log4j。属性中对文件大小,保留个数等进行相应设置。


,2、作业日志

,作业日志记录了作业运行的整体情况,以及该作业的计数器统计信息。比如作业一共有多少个地图,多少个减少,分别在什么时候哪个节点启动,各个地图进行了多少文件读写,占用了多少CPU时间等等。作业日志在系统监控和调优方面有重要作用。


,3、集装箱日志

,容器日志是hadoop各个容器记录的日志,其中会包含错误或失败的重要信息。如果没有打开日志聚合,默认是分布在各个nodemanager节点上的。如果打开了日志聚合选项,则会统一放在集中的位置(比如HDFS上).Container日志会记录作业运行时会发生的各种运行时信息和错误,对于调试和调优有很大的帮助。


,二、作业日志位置的移动

,作业日志记录的是作业的整体情况,而且会随着作业执行的阶段变化而改变。


,1、作业启动后,hadoop会将作业日志放在$ {yarn.app.mapreduce.am.staging-dir}/$ {user}/.staging/{$ job_ID}目录。其中:

,yarn.app.mapreduce.am.staging-dir在yarn-site.xml中指定,默认是/tmp/hadoop-yarn/分期

,$ {user}是运行作业的用户

,例如:网格用户发起一个先生作业,job_id为job_1483969906296_0002,在其运行没有结束时,作业的日志会放在/tmp/hadoop-yarn/临时/网格/7制?job_1483969906296_0002目录中。

 Hadoop日志小结


,2,作业完成后,作业日志会被移到$ {mapreduce.jobhistory.intermediate-done-dir}/$ {user},其中$ {mapreduce.jobhistory.intermediate-done-dir}可以在mapred-site.xml中配置,默认值是$ {yarn.app.mapreduce.am.staging-dir}/历史/done_intermediate


,3,第2步的这个新地址只是个临时的中转站,hadoop会定时将这个目录中的日志转移到永久地址:$ {mapreduce.jobhistory。done-dir}/${一}/{月}/{一}美元/000000目录中。其中000000年的应该会发生变化,暂时未确定代表何种变量,以后确认后再补充。

 Hadoop日志小结”> <br/> </p> <p>,三,其它补充</p> <p> <br/> </p> <p>,1、作业日志中的jhist文件为json格式,保存了作业的主要信息</p> <p>,2,如果需要查看容器日志,最好打开日志聚合(在yarn-site.xml中配置纱线。log-aggregation-enable为真),可以使用纱日志-applicationId & lt; application_id>查看完整的集装箱日志。</p> <p> <br/> </p><h2 class=Hadoop日志小结