hadoop日志文件
hadoop日志文件
@(HADOOP)[hadoop]
- hadoop日志文件
- 一master服務器上的日志
- 二slave服務器上的日志
- 三審計日志
- 四MR作業歷史日志
hadoop存在多種日志文件,其中master上的日志文件記錄全面信息,包括slave上的jobtracker與datanode也會將錯誤信息寫到master中。而slave中的日志主要記錄完成的task任務信息。
默認情況下,hadoop日志保存在HADOOP_INSTALL/logs目錄,但一般情況下建議重新指定路徑,常用的是/var/log/hadoop,通過在hadoop-env.sh中增加以下一行來實現:
export HADOOP_LOG_DIR=/var/log/hadoop
一、master服務器上的日志
1、保存在master服務器上的日志有以下四類。注意,tasktracker與datanode上的部分日志會保存在master中,方便出現問題時定位至具體服務器。
2、master中主要有2種日志,分別以log與out作后綴,其中每一個守護進程都會產生這2個日志,如jobtracker/ namenode/ tasktracker/ datanode均會分別產生這2個日志文件。這2個文件均是每天生成一個。
3、log日志文件通過log4j記錄的,大部分應用程序的日志消息都寫到該日志文件中,故障診斷的首要步驟即為檢查該文件。【此日志文件最重要】
out日志文件記錄標準輸出和標準錯誤日志,由于大多日志均使用log4j輸出至log日志文件中,因此此文件很小或者為空。系統僅保留最新的5個日志。
4、這2類日志的命名均包含用戶名稱、守護進程名稱和本地主機名等信息。
二、slave服務器上的日志
(一)tasktracker相關日志
每個tasktracker子進程都用log4j產生以下4個日志文件,這些日志記錄了各個task的日志輸出。
1、日志文件(syslog)
通過Log4j記錄的日志
2、保存發到標準輸出數據的文件(stdout)
3、保存標準錯誤的文件(stderr)
4、log.index
(1)tasktracker會記錄它所運行的所有task的日志,默認目錄為$HADOOP_LOG_DIR/userlogs。且每個job單獨生成一個目錄,如下:
[jediael@slave1 userlogs]$ pwd /mnt/jediael/hadoop-1.2.1/logs/userlogs jediael@slave1 userlogs]$ ls job_201502271057_0243 job_201502271057_0245 job_201502271057_0247 job_201502271057_0250 job_201502271057_0253 job_201502271057_0244 job_201502271057_0246 job_201502271057_0249 job_201502271057_0251 job_201502271057_0255(2)進入具體目錄,內容如下
[jediael@slave1 job_201502271057_0243]$ ll total 16 lrwxrwxrwx 1 jediael jediael 95 Feb 28 15:06 attempt_201502271057_0243_m_000000_0 -> /mnt/tmphadoop/mapred/local/userlogs/job_201502271057_0243/attempt_201502271057_0243_m_000000_0 lrwxrwxrwx 1 jediael jediael 95 Feb 28 15:06 attempt_201502271057_0243_m_000001_0 -> /mnt/tmphadoop/mapred/local/userlogs/job_201502271057_0243/attempt_201502271057_0243_m_000001_0 lrwxrwxrwx 1 jediael jediael 95 Feb 28 15:06 attempt_201502271057_0243_m_000002_0 -> /mnt/tmphadoop/mapred/local/userlogs/job_201502271057_0243/attempt_201502271057_0243_m_000002_0 -rw-r----- 1 jediael jediael 502 Feb 28 15:06 job-acls.xml由此可見,這個tasktracker運行了3個job_201502271057_0243的task,這個task的日志目錄只是一個鏈接,它具體鏈接至tmphadoop目錄下。
(3)進入實際目錄,可以發現以下4個日志文件
[jediael@slave1 userlogs]$ cd /mnt/tmphadoop/mapred/local/userlogs/job_201502271057_0243/attempt_201502271057_0243_m_000000_0 [jediael@slave1 attempt_201502271057_0243_m_000000_0]$ ll total 36 -rw-r--r-- 1 jediael jediael 154 Feb 28 15:06 log.index -rw-rw-r-- 1 jediael jediael 0 Feb 28 15:06 stderr -rw-rw-r-- 1 jediael jediael 0 Feb 28 15:06 stdout -rw-rw-r-- 1 jediael jediael 30248 Feb 28 15:06 syslog(二)datanode相關日志
三、審計日志
這個日志記錄所有HDFS請求,默認是關閉的。一般寫入namenode的日志中
在log4j.properties屬性文件中設置以下選項:
由于審計信息在INFO級別實現的,因此將WARN改為info即可開啟審計。
四、MR作業歷史日志
記錄已經完成的任務,放在HADOOP_LOG_DIR/histroy中。
總結
以上是生活随笔為你收集整理的hadoop日志文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hadoop API之:文件操作
- 下一篇: hadoop调优之一