2017-08-30 67 views
0

我對AWS EMR上運行的Apache Spark作業有疑問。每次執行Spark作業時,都會生成大量日誌,在我的情況下,日誌大小約爲5-10GB,但是80%的日誌是信息(無用),我怎樣才能減少這些日誌?如何在EMR中減少Apache Spark的日誌?

我被log4j2用於Spark以將日誌級別更改爲「警告」以避免不必要的日誌,但是來自不同組件的那些日誌將來自YARN的一些原始日誌(一些來自EMR的日誌)合併在一起。那麼如何解決這個問題呢?有沒有人有這樣的經歷?因爲對我而言,我不想重新配置集羣中的每個節點。

我曾嘗試以下解決方案,似乎並不在下面

Logger logger = LogManager.getLogger("sparklog"); 
logger.setlevel() 

xml配置的EMR工作。

String used to match the log4j2.xml configuration files 
<Configuration status="WARN" monitorInterval="300">////reload the configuration file each 300 seconds 
    <Appenders> 
     <Console name="Console" target="SYSTEM_OUT"> 
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> //// control output format 
     </Console> 
    </Appenders> 
    <Loggers> 
     <Logger name="sparklog" level="warn" additivity="false">//// configuration the myloger loger level 
      <AppenderRef ref="Console" /> 
     </Logger> 
     <Root level="error"> 
      <AppenderRef ref="Console" /> 
     </Root> 
    </Loggers> 
</Configuration> 

回答

0

由於沒有人回答我的問題,我在這裏得到了解決方案。 1.將配置文件上傳到您的主節點。

scp -i ~/.ssh/emr_dev.pem /Users/x/log4j_files/log4j.properties [email protected]:/usr/tmp/ 

2.In您提交腳本只是附加

"--files": "/usr/tmp/log4j.properties" 

這上述解決方案正常工作對我來說。