Hadoop的日誌有不少種,不少初學者每每遇到錯而不知道怎麼辦,其實這時候就應該去看看日誌裏面的輸出,這樣每每能夠定位到錯誤。Hadoop的日誌大體能夠分爲兩類:(1)、Hadoop系統服務輸出的日誌;(2)、Mapreduce程序輸出來的日誌。這兩類的日誌存放的路徑是不同的。本文基於Hadoop 2.x版本進行說明的,其中有些地方在Hadoop 1.x中是沒有的,請周知。
node
諸如NameNode、DataNode、ResourceManage等系統自帶的服務輸出來的日誌默認是存放在${HADOOP_HOME}/logs目錄下。好比resourcemanager的輸出日誌爲yarn-${USER}-resourcemanager-${hostname}.log,其中${USER}s是指啓動resourcemanager進程的用戶,${hostname}是resourcemanager進程所在機器的hostname;當日志到達必定的大小(能夠在${HADOOP_HOME}/etc/hadoop/log4j.properties文件中配置)將會被切割出一個新的文件,切割出來的日誌文件名相似yarn-${USER}-resourcemanager-${hostname}.log.數字的,後面的數字越大,表明日誌越舊。在默認狀況下,只保存前20個日誌文件,好比下面:apache
|
上面這些都是能夠配置的,好比resourcemanager(在${HADOOP_HOME}/etc/hadoop/log4j.properties):
|
resourcemanager日誌存放路徑也是能夠配置的(在${HADOOP_HOME}/etc/hadoop/yarn-env.sh):
|
只須要修改YARN_LOG_DIR的值,這時候,yarn相關的日誌記錄都將存放在你配置的目錄下。
Mapreduce程序的日誌能夠分爲歷史做業日誌和Container日誌。
(1)、歷史做業的記錄裏面包含了一個做業用了多少個Map、用了多少個Reduce、做業提交時間、做業啓動時間、做業完成時間等信息;這些信息對分析做業是頗有幫助的,咱們能夠經過這些歷史做業記錄獲得天天有多少個做業運行成功、有多少個做業運行失敗、每一個隊列做業運行了多少個做業等頗有用的信息。這些歷史做業的信息是經過下面的信息配置的:
|
(2)、Container日誌包含ApplicationMaster日誌和普通Task日誌等信息。默認狀況下,這些日誌信息是存放在${HADOOP_HOME}/logs/userlogs目錄下,咱們能夠經過下面的配置進行修改:
3.日誌彙集相關配置參數日誌彙集是YARN提供的日誌中央化管理功能,它能將運行完成的Container/任務日誌上傳到HDFS上,從而減輕NodeManager負載,且提供一箇中央化存儲和分析機制。默認狀況下,Container/任務日誌存在在各個NodeManager上,若是啓用日誌彙集功能須要額外的配置。 (1) yarn.log-aggregation-enable 參數解釋:是否啓用日誌彙集功能。 默認值:false (2) yarn.log-aggregation.retain-seconds 參數解釋:在HDFS上彙集的日誌最多保存多長時間。 默認值:-1 (3) yarn.log-aggregation.retain-check-interval-seconds 參數解釋:多長時間檢查一第二天志,並將知足條件的刪除,若是是0或者負數,則爲上一個值的1/10。 默認值:-1 (4) yarn.nodemanager.remote-app-log-dir 參數解釋:當應用程序運行結束後,日誌被轉移到的HDFS目錄(啓用日誌彙集功能時有效)。 默認值:/tmp/logs (5) yarn.log-aggregation.retain-seconds 參數解釋:遠程日誌目錄子目錄名稱(啓用日誌彙集功能時有效)。 默認值:日誌將被轉移到目錄${yarn.nodemanager.remote-app-log-dir}/${user}/${thisParam}下 |
若是hdfs日誌路徑使用默認值,則能夠在/tmp/logs目錄下找到全部用戶的application運行日誌。
熟悉Hadoop相關日誌的存放地方不只對運維Hadoop和觀察Mapreduce的運行都是頗有幫助的。
參考連接:
http://www.iteblog.com/archives/896
http://dongxicheng.org/mapreduce-nextgen/hadoop-yarn-configurations-log-aggregation/
http://stackoverflow.com/questions/32713587/how-to-keep-yarns-log-files