Yarn聚合日志


一、聚合日志介紹

日志聚集是YARN提供的日志中央化管理功能,它能將運行完成的Container任務日志上傳到HDFS上,從而減輕NodeManager負載,且提供一個中央化存儲和分析機制。默認情況下,Container 任務日志存在在各個NodeManager上,保存在"yarn.nodemanager.log-dirs"配置的目錄下,保存的時間由"yarn.nodemanager.log.retain-seconds"參數決定(默認時3小時)。啟用日志聚集功能,會將完成的日志上傳到HDFS的 "${yarn.nodemanager.remote-app-log-dir}/${user}/${yarn.nodemanager.remote-app-log-dir-suffix}"下,要實現日志聚合功能,需要額外的配置。

這里的日志存儲的就是具體Mapreduce和Spark任務的日志,包括框架的和應用程序里自己打印的。這日志聚合是用來看日志的,而job history server,則是用來看某個application的大致統計信息的,包括啟停時間,map任務數,reduce任務數以及各種計數器的值等等。job history server是抽象概要性的統計信息,而聚合日志是該application所有任務節點的詳細日志集合。

二、Yarn作業日志生命周期

Yarn作業在運行過程中,聚合日志的生命周期如下:

1. MR運行過程中,日志將暫存於yarn.nodemanager.log-dirs配置項指定的本地路徑下,默認為/var/log/hadoop-yarn/container。

2. MR運行結束后(無論正常結束與否),將持久化日志到yarn.nodemanager.remote-app-log-dir和yarn.nodemanager.remote-app-log-dir-suffix配置項指定的HDFS路徑下,前者默認為/tmp/logs,后者默認為logs。HDFS的實際路徑為${yarn.nodemanager.remote-app-log-dir}/${user}/${yarn.nodemanager.remote-app-log-dir-suffix}/${application_id}。

3. 日志持久化后,會刪除本地的暫存日志。

4. HDFS聚合日志保存周期 yarn.log-aggregation.retain-seconds,集群參數設置保留時間。

三、聚合日志相關參數

yarn.nodemanager.log-dirs
參數解釋:日志存放地址(可配置多個目錄)。
默認值:${yarn.log.dir}/userlogs

yarn.log-aggregation-enable
參數解釋:是否啟用日志聚集功能。
默認值:false

yarn.log-aggregation.retain-seconds
參數解釋:在HDFS上聚集的日志最多保存多長時間。
默認值:-1

yarn.log-aggregation.retain-check-interval-seconds
參數解釋:多長時間檢查一次日志,並將滿足條件的刪除,如果是0或者負數,則為上一個值的1/10。
默認值:-1

yarn.nodemanager.remote-app-log-dir
參數解釋:當應用程序運行結束后,日志被轉移到的HDFS目錄(啟用日志聚集功能時有效)。
默認值:/tmp/logs

yarn.nodemanager.remote-app-log-dir-suffix
參數解釋:遠程日志目錄子目錄名稱(啟用日志聚集功能時有效)。
默認值:logs 日志將被轉移到目錄${yarn.nodemanager.remote-app-log-dir}/${user}/${thisParam}下

yarn.nodemanager.log.retain-seconds
參數解釋:NodeManager上日志最多存放時間(不啟用日志聚集功能時有效)。
默認值:10800(3小時)

 

【參考資料】


免責聲明!

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



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