您好,登錄后才能下訂單哦!
一、日志分類
1、進程日志
進程日志即為hadoop各個守護進程的日志,例如ResourceManager、NodeManager、NameNode、DataNode等守護進程。集群啟動或者運行期間出現異常,首先應該查看進程日志,它是系統排障的重要工具。默認位置為${HADOOP_HOME}/logs。可以在mapred-env.sh和yarn-env.sh中分別指定HADOOP_MAPRED_LOG_DIR和YARN_LOG_DIR變量來改變默認位置。
進程日志是滾動記錄的,當日志達到指定大小之后,會滾動寫入下一個文件。可以在$HADOOP_HOME/etc/hadoop/log4j.properties中對文件大小、保留個數等進行相應設置。
2、作業日志
作業日志記錄了作業運行的整體情況,以及該作業的計數器統計信息。比如作業一共有多少個map,多少個reduce,分別在什么時候哪個節點啟動,各個map進行了多少文件讀寫、占用了多少CPU時間等等。作業日志在系統監控和調優方面有重要作用。
3、Container日志
Container日志是hadoop各個container記錄的日志,其中會包含錯誤或失敗的重要信息。如果沒有打開日志聚合,默認是分布在各個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/staging
${user}是運行作業的用戶
例如:grid用戶發起一個mr作業,job_id為job_1483969906296_0002,在其運行沒有結束時,作業的日志會放在/tmp/hadoop-yarn/staging/grid/.staging/job_1483969906296_0002目錄中。
2、作業完成后,作業日志會被移到${mapreduce.jobhistory.intermediate-done-dir}/${user},其中${mapreduce.jobhistory.intermediate-done-dir}可以在mapred-site.xml中配置,默認值是${yarn.app.mapreduce.am.staging-dir}/history/done_intermediate
3、第2步的這個新地址只是個臨時的中轉站,hadoop會定時將這個目錄中的日志轉移到永久地址:${mapreduce.jobhistory.done-dir}/${year}/${month}/${day}/000000目錄中。其中的000000應該會發生變化,暫時未確定代表何種變量,以后確認后再補充。
三、其它補充
1、作業日志中的jhist文件為json格式,保存了作業的主要信息
2、如果需要查看container日志,最好打開日志聚合(在yarn-site.xml中配置yarn.log-aggregation-enable為true),可以使用yarn logs -applicationId <application_id>查看完整的container日志。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。