2017-04-25 162 views
1

在我的火花的应用程序,我记录是这样的:禁止OutputRedirector文本日志

Logger log = spark.log(); 

log.info("**************************************************"); 
log.info("Pi is roughly " + 4.0 * count/n); 
log.info("**************************************************"); 

然而,我的日志目前看起来是这样的:

Apr 24, 2017 10:54:38 PM org.apache.spark.launcher.OutputRedirector redirect 
INFO: [CJC]17/04/24 22:54:38 INFO SparkSession: ************************************************** 
Apr 24, 2017 10:54:38 PM org.apache.spark.launcher.OutputRedirector redirect 
INFO: [CJC]17/04/24 22:54:38 INFO SparkSession: Pi is roughly 3.138936 
Apr 24, 2017 10:54:38 PM org.apache.spark.launcher.OutputRedirector redirect 
INFO: [CJC]17/04/24 22:54:38 INFO SparkSession: ************************************************** 

我想它擦拭本了这么它看起来像这样:

INFO: [CJC]17/04/24 22:54:38 INFO SparkSession: ************************************************** 
INFO: [CJC]17/04/24 22:54:38 INFO SparkSession: Pi is roughly 3.138936 
INFO: [CJC]17/04/24 22:54:38 INFO SparkSession: ************************************************** 

在这种情况下,log4j.properties文件似乎并没有帮助我,因为它似乎所有日志记录都将通过OutputRedirector类。有没有解决的办法?

回答

1

有不同的方式来配置/火花作业控制日志记录,下面的实施例使用基于log4j的xml配置:

供应测井配置作为命令行参数火花作业:

${SPARK_HOME}/bin/spark-submit \ 
--conf "spark.driver.extraJavaOptions=-Dlog4j.configuration=file:<path>/log4j.xml" \ 
--conf "spark.executor.extraJavaOptions=-Dlog4j.configuration=file:<path>/log4j.xml" \ 
........... 
........... 

log4j.xml:

<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
 
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
 
     <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
 
     <param name="Target" value="System.out"/> 
 
     <layout class="org.apache.log4j.PatternLayout"> 
 
     <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" /> 
 
     </layout> 
 
     </appender> 
 
     <logger name="org.apache.spark.launcher"> 
 
      <level value="error" /> 
 
     </logger> 
 
     <logger name="org.spark-project"> 
 
      <level value="error" /> 
 
     </logger> 
 
     <logger name="org.apache.hadoop"> 
 
      <level value="error" /> 
 
     </logger> 
 
     <logger name="io.netty"> 
 
      <level value="error" /> 
 
     </logger> 
 
     <logger name="org.apache.zookeeper"> 
 
      <level value="error" /> 
 
     </logger> 
 
     <root> 
 
      <priority value ="info" /> 
 
      <appender-ref ref="console" /> 
 
     </root> 
 
    </log4j:configuration>