2016-07-07 122 views

回答

1

截至目前,还没有简单的方法来做到这一点,因为flink总是在flink/conf下加载文件。

如果使用弗林克的单丝簇每工作模式(即你启动你的脚本:flink run -m yarn-cluster ...),这里是一个解决办法:

  1. 复制flink/conf目录到仅用于您的工作自定义位置
  2. 修改log4j.properties或任何其他配置文件
  3. 开展你的工作之前,运行export FLINK_CONF_DIR=/path/to/my/conf

根据您的flink版本,检查文件flink/bin/config.sh。如果您运行翻过这一行:

FLINK_CONF_DIR=$FLINK_ROOT_DIR_MANGLED/conf 

改变它:

if [ -z "$FLINK_CONF_DIR" ]; then 
    FLINK_CONF_DIR=$FLINK_ROOT_DIR_MANGLED/conf; 
fi 

如果你找到另一种方式,请与我们分享。

1

按照弗林克文件(最新版本),你可以通过log4j的/的logback文件,当您提交使用,这里的链接: https://ci.apache.org/projects/flink/flink-docs-master/monitoring/logging.html

总之,你可以提供“-Dlog4j.configuration=/path/to/log4j.properties”或“-Dlogback.configurationFile=/path/to/logback.xml”。您也可以为每项工作配置不同的记录器,因此您可以保留一个“logback"/"log4j”文件。下面是一个例子用的logback:

<!-- logback.xml --> 
<configuration> 
    <property name="LOG_HOME" value="/path/to/logs" /> 

    <appender name="JOB1" 
       class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file>${LOG_HOME}/job1/job.out</file> 
     <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
      <Pattern> 
       %d{yyyy-MM-dd HH:mm:ss} - %msg%n 
      </Pattern> 
     </encoder> 

     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <!-- rollover hourly --> 
      <fileNamePattern>${LOG_HOME}/job1/%d{yyyyMMdd_HH}.%i.log</fileNamePattern> 
      <timeBasedFileNamingAndTriggeringPolicy 
        class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
       <maxFileSize>1MB</maxFileSize> 
      </timeBasedFileNamingAndTriggeringPolicy> 
     </rollingPolicy> 
    </appender> 

    <logger name="com.yourcompany.job1" level="INFO" additivity="false"> 
     <appender-ref ref="JOB1" /> 
    </logger> 

    <!-- rest of configs --> 
</configuration> 

而在你的代码(例如使用Scala,这几乎是与Java一样):

import org.slf4j.LoggerFactory 

private final val logger = LoggerFactory.getLogger("com.yourcompany.job1") 
logger.info("some message") 

干杯

+2

但是,在你们提供的“ - Dlog4j.configuration = /路径/要/ log4j.properties“?它似乎不是Flink的命令行选项。 –

相关问题