Hadoop日志文件


初學者運行MapReduce作業時,經常會遇到各種錯誤,往往不知所雲,一般直接將終端打印的錯誤貼到搜索引擎上查找,以借鑒前人的經驗。

對於hadoop而言,當遇到錯誤時,第一時間應是查看日志,日志里通產會有詳細的錯誤原因提示。Hadoop MapReduce日志分為兩部分,一部分是服務日志,一部分是作業日志,具體介紹如下:


1. Hadoop 1.x版本


Hadoop 1.x中MapReduce的服務日志包括JobTracker日志和各個TaskTracker日志,它們的日志位置如下:

 

JobTracker:在JobTracker安裝節點上,默認位置是

${HADOOP_HOME}/logs/*-jobtracker-*.log,該文件每天生成一個,舊的日志后綴是日期,當天的日志文件后綴是“.log”。

 

TaskTracker:在各個TaskTracker安裝節點上,默認位置是
${HADOOP_HOME}/logs/*-tasktracker-*.log,該文件每天生成一個,舊的日志后面會跟一個日志,當天的日志文件后綴是“.log”

 

作業日志包括jobhistory日志和task日志兩部分,其中,jobhistory日志是作業運行日志,包括作業啟動時間、結束時間,每個任務的啟動時間、結束時間,各種counter信息等,用戶可以從這個日志中解析出作業運行的各種信息,是非常有價值的信息。默認存放位置是JobTracker所在節點的${HADOOP_HOME}/logs/history目錄下,可通過參數hadoop.job.history.location配置。每個task日志存放在task運行節點上,存放位置是${HADOOP_HOME}/userlogs//目錄下,每個task包含三個日志文件,分別是stdout、stderr和syslog,其中,stdout是通過標准輸出打印出來的日志,比如System.out.println,注意,程序中通過標准輸出打印的日志並不會直接顯示在終端上,而是保存在這個文件中,syslog是通過log4j打印的日志,通常這個日志中包含的有用信息最多,也是錯誤調試中最關鍵的參考日志。

 

 

2. Hadoop 2.x版本


Hadoop 2.x中YARN系統的服務日志包括ResourceManager日志和各個NodeManager日志,他們的日志位置如下:
ResourceManager日志存放位置是Hadoop安裝目錄下的logs目錄下的yarn-*-resourcemanager-*.log
NodeManager日志存放位置是各個NodeManager節點上hadoop安裝目錄下的logs目錄下的yarn-*-nodemanager-*.log
應用程序日志包括jobhistory日志和Container日志,其中,jobhistory日志是應用程序運行日志,包括應用程序啟動時間、結束時間,每個任務的啟動時間、結束時間,各種counter信息等。
Container日志包含ApplicationMaster日志和普通Task日志,它們均存放在Hadoop安裝目錄下的userlogs目錄中的application_xxx目錄下,其中ApplicationMaster日志目錄名稱為container_xxx_000001,普通task日志目錄名稱則為container_xxx_000002,container_xxx_000003,….,同Hadoop 1.x一樣,每個目錄下包含三個日志文件:stdout、stderr和syslog,且具體含義是一樣的。


3. 總結
Hadoop日志是用戶定位問題的最重要渠道,對於初學者而言,往往意識不到這一點,或者即使意識到這一點,也找不到日志存放位置,希望本文對初學者有幫助。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM