Hadoop Yarn的日誌清理

2021-10-09 16:17:28 字數 1851 閱讀 4348

hadoop/yarn的日誌清理可以分為兩個子話題討論:

我們這裡討論的日誌清理並不是通過定時的日誌刪除命令去實現,這一做法顯然優雅, 具體的做法下面會分別進行討論。

hadoop/yarn使用log4j進行日誌輸出,所以對於它們本地日誌的清理,最好的方式是通過修改log4j的配置配置檔案,以rolling的方式寫入日誌。hadoop/yarn的log4j配置檔案一般會放置於/etc/hadoop/etc/hadoop/conf下,確切的位置與你使用的hadoop發行版有關,請自行查詢並確認。

針對集群所有節點上的log4j.properties檔案做如下修改:

設定單個log檔案的大小 (maxfilesize)

設定最多log檔案數(maxbackupindex)

通過這樣的設定,當日誌超過指定的og檔案數後,會自動覆蓋最早期的日誌,不再需要手動刪除日誌。

覆蓋之後,只有重啟hadoop相關服務配置才會生效,但是在重啟前建議將現有日誌備份到其他位置,備份好之後再刪除現有日誌:

sudo

rm -rf /var/log/hadoop-hdfs/* /var/log/hadoop-mapreduce/* /var/log/hadoop-yarn/*

具體的日誌位置可能會因不同的發行版而不同,但一版都會位於/var/log/下。同樣的,該操作需要在集群所有節點上執行。

清空日誌之後就可以重啟hadoop相關服務了,執行前請確保沒有集群目前處於空閒狀態,沒有任務正在執行!

重啟完成之後,執行一些作業,等待一段時間之後,可以進入各個節點的/var/log/hadoop-yarn和/var/log/hadoop-hdfs下檢視一下日誌檔案體積和數量,確保修改已生效。

作為一種分布式系統,yarn上應用會以容器(container)形式執行,其在執行期間產生的日誌也是先寫在容器對應物理節點的某個本地目錄下。由於日誌是分布式儲存的,所以不便檢視,因此,預設情況下,yarn都會開啟日誌聚合功能,將各節點的本地日誌聚合之後,存放於hdfs上。控制這一功能的配置項是yarn.log-aggregation-enable,該項通常會被設為true,即啟動日誌聚合。

在開啟了日誌聚合的情況下,yarn對日誌的處理是這樣的:容器內日誌會先寫入worker節點的本地目錄下,當作業執行結束後,會將所有節點的日誌聚合,存放於hdfs上的某個目錄下,同時刪除本地節點的日誌檔案。而hdfs上的目錄也有乙個保留時間,超過這個時間日誌會被自動清除。

所以對於容器內產生的日誌,預設是不需要關注日誌越積累越多的問題。控制hdfs上聚合日誌儲存時長的配置項是yarn.log-aggregation.retain-seconds

最後,作為乙個備忘,我們將日誌聚合的幾個引數彙總一下,它們都在yarn-site.xml中配置,需要注意的是,在不同的發行版中,它們的預設值都是不盡相同的

引數解釋:是否啟用日誌聚集功能,開源hadoop版的預設值:false

引數解釋:在hdfs上聚集的日誌最多儲存多長時間。開源hadoop版的預設值:-1

引數解釋:當應用程式執行結束後,日誌被轉移到的hdfs目錄(啟用日誌聚集功能時有效)。開源hadoop版的預設值:/tmp/logs

yarn聚合後的日誌可通過resourcemanger頁面直接檢視。

開啟Hadoop Yarn的日誌監控功能

配置 yarn site.xml 開啟日誌聚合 日誌聚集是yarn提供的日誌 化管理功能,它能將執行完成的container 任務日誌上傳到hdfs上,從而減輕nodemanager負載,且提供乙個 化儲存和分析機制。預設情況下,container 任務日誌存在在各個nodemanager上 sit...

hadoop yarn如何啟動聚合日誌

yarn的日誌監控功能預設是處於關閉狀態的,需要我們進行開啟,開啟步驟如下 該配置中新增下面的配置 tmp logs yarn.nodemanager.resource.memory mb 4096 yarn.scheduler.minimum allocation mb 2048 yarn.sch...

hadoop yarn日誌報錯以及如何啟動聚合日誌

我們在hadoop集群一般需要在工作台檢視日誌,但是工作台檢視日誌一般會出現以下情況 上面的原因是由於yarn的日誌監控功能預設是處於關閉狀態的,需要我們進行開啟,開啟步驟如下 該配置中新增下面的配置 5該配置檔案中新增如下配置 若是有了的話,無需再次新增 mapreduce.framework.n...