log (hadoop)
1application->container来管理。NameNode 的mapreduce log在userlogs。System.out 无法看到Mapper和Reducer的部分。
- 生成log方法:
2log4j
3apache common LogFactory
4MultipleOutput ,program logputout
- 查看task log Hadoop:2.6:
mr-jobhistory-daemon.sh start historyserver jps JobHistoryServer
Tracking URL里面的History
yarn-site.xml里面配置aggregation为true: 看到每个Map和Reduce任务的Log
yarn-site.xml同步到所有的节点,重启集群
HDFS directory where the application logs are moved on application completion. Need to set appropriate permissions. Only applicable if log-aggregation is enabled. The default value is "/logs" or "/tmp/logs"
- .log .out log4j.properties读取环境变量,生成log4j.DailyRollingFileAppender
由hadoop-daemon.sh脚本指定一些列环境变量,然后log4j.properties文件读取相应的环境变量产生对应的*.log日志文件。这个日志文件输出类型为org.apache.log4j.DailyRollingFileAppender,它会自动按天更新。
hadoop-admin-datanode-horde20.log是在horde20这台机器上启动datanode进程的日志输出,由log4j实现。
hadoop-admin-datanode-horde20.out则是在horde20这台机器上启动datanode时的标准输出。
这些日志仅仅包含在horde20这台机器上启动datanode进程的日志,没有其他的信息。
- syslog task(log4j 接口) ,TaskRunner.run()设置参数
记录了在我们的task中,通过log4j接口记录的日志信息。
每一个task都会通过TaskRunner.run()来启动,它会为每一个子java程序指定标准错误输出和标准输出到前面提到的文件中,同时设置相应的参数,其中包括”-Dhadoop.root.logger=INFO,TLA”,这个TLA的定义可以在log4j.properties文件中找到,具体实现是org.apache.hadoop.mapred.TaskLogAppender。这个参数指定了在我们的task中,通过log4j接口记录的日志信息都记录到syslog中。
- history job运行及配置信息
horde20_1250841267760_job_200908211554_0001_conf.xml记录了我们运行这个job时候的配置文件信息。
horde20_1250841267760_job_200908211554_0001_admin_wordcount记录了我们运行这个job的情况。
他们是由JobHistory产生的,并且只在jobtracker机器上产生。
- EventCounter 次数统计
在Hadoop的默认配置log4j.properties中,所有通过log4j接口记录的日志信息还会记录到一个叫EventCounter的Appender中,它的实现是org.apache.hadoop.metrics.jvm.EventCounter,具体的作用是统计Hadoop中使用log4j记录INFO,WARN,ERROR,FATAL信息的次数。
- counter metric