2017-06-28 41 views
0

填補蜂巢中的MapReduce的日誌我正在上存儲爲蜂巢地板上TEZ表自定義UDAF。我們的Hive作業在YARN上運行,所有這些都在Amazon EMR中設置。但是,由於我們所使用的地板數據是使用較早版本的Parquet(1.5)生成的,因此我收到了一條警告,說明YARN日誌的填充並導致磁盤在作業完成之前空間不足。

這是警告:木地板警告在Amazon EMR

PM警告:org.apache.parquet.CorruptStatistics:忽略 統計 因爲CREATED_BY無法解析(參見實木複合地板-251)拼花-MR版本

它還打印堆棧軌道。我一直試圖沉默警告日誌無濟於事。除了這個警告外,我設法關閉了幾乎所有類型的日誌。我已嘗試使用AWS config修改幾乎每個Log4j設置文件,如here所述。

事情我至今嘗試過:

  1. 我設置TEZ-site.xml中進行以下設置(JSON格式寫他們,因爲這是AWS需要配置)這是正確的XML當然格式的實際情況。

    "tez.am.log.level": "OFF", 
    "tez.task.log.level": "OFF", 
    "tez.am.launch.cluster-default.cmd-opts": "-Dhadoop.metrics.log.level=OFF -Dtez.root.logger=OFF,CLA", 
    "tez.task-specific.log.level": "OFF;org.apache.parquet=OFF" 
    
  2. 我有mapred-site.xml中以下設置。這些設置有效地關閉了我的YARN日誌中發生的所有日誌,除了有問題的警告。

    "mapreduce.map.log.level": "OFF", 
        "mapreduce.reduce.log.level": "OFF", 
        "yarn.app.mapreduce.am.log.level": "OFF" 
    
  3. 我在以前的AWS鏈接顯示的列表中發現幾乎所有其他log4j.properties文件。我這些設置。

    "log4j.logger.org.apache.parquet.CorruptStatistics": "OFF", 
        "log4j.logger.org.apache.parquet": "OFF", 
        "log4j.rootLogger": "OFF, console" 
    

老實說,在這一點上,我只是想找到某種方式關閉日誌,並得到那份工作不知何故運行。我已經閱讀了類似的問題,例如link,他們通過更改log4j設置來解決這個問題,但是這對於Spark來說並不適用於Hive/Tez和Amazon。任何幫助表示讚賞。

回答

0

行,所以我結束了通過修改的Java logging.properties文件爲每一個數據節點和在EMR主節點固定這一點。在我的情況下,該文件位於/etc/alternatives/jre/lib/logging.properties

我向引導操作文件添加了一個shell命令,以自動將以下兩行添加到屬性文件的末尾:

org.apache.parquet.level =嚴重

org.apache.parquet.CorruptStatistics.level =嚴重

只是想萬一有人來更新其他人面臨着同樣的問題,因爲這是真的沒有設置適當的由亞馬遜,並需要大量的試驗和錯誤。