我在独立集群上运行多个flink作业。我想为不同的链接作业提供不同的日志文件。那么如何在提交flink作业时传递不同的log4j.properties文件。如何为在同一个独立集群上运行的不同flink作业指定不同的log4j.properties文件
1
A
回答
1
截至目前,还没有简单的方法来做到这一点,因为flink总是在flink/conf
下加载文件。
如果使用弗林克的单丝簇每工作模式(即你启动你的脚本:flink run -m yarn-cluster ...
),这里是一个解决办法:
- 复制
flink/conf
目录到仅用于您的工作自定义位置 - 修改
log4j.properties
或任何其他配置文件 - 开展你的工作之前,运行
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")
干杯
相关问题
- 1. 如何在独立flink集群中提交flink作业时指定与守护程序日志文件不同的日志文件
- 2. Cron作业与独立作业不同
- 3. 火花独立群集,在一个执行器上运行的作业
- 4. 在Jenkins的不同运行中对同一作业使用不同的从站
- 5. 在群集中的不同节点上并行运行RandomForest
- 6. 如何在python中独立运行不同的子进程?
- 7. 如何安排作业在不同时间为不同用户运行
- 8. 如何在同一个src文件夹中运行不同的.kt文件/类?
- 9. 如何在同一个项目中为不同的构建指定不同的.dockerignore文件?
- 10. Jenkins multijob插件不会在不同节点上并行执行同一作业
- 11. Sidekiq作业将不会在同一时间运行在不同的队列
- 12. 集群模式SPARK拒绝同时运行两个以上的作业
- 13. 如何在同一页面上为Colorbox指定2个不同的位置?
- 14. oozie实例可以同时在多个hadoop集群上运行作业吗?
- 15. 独立JAR行为不同IDE
- 16. 如何同时独立移动两个不同的CCSprites?
- 17. 如何为每个不同的客户端指定一个不同的ID
- 18. 如何在同一页面上运行不同版本的jQuery?
- 19. 在本地群集中的不同分区中运行不同版本
- 20. 如何在不同内核上运行不同的线程?
- 21. 需要从一个单独的文件运行3个不同的ruby文件
- 22. 同时在一个作业下同时运行多个SQL作业
- 23. 文件下载servlet在集群服务器上的行为与IE不同
- 24. 如何运行python脚本作为不同文件的循环?
- 25. 从不同的时区在CPanel上运行PHP CRON作业
- 26. 如何在Jenkins中为不同的URL /环境运行单个作业?
- 27. 如何在每次运行时为不同参数并行运行相同的作业
- 28. 在不同的端口上在tomcat上运行不同的webapps
- 29. 如何在同一行中制作不同大小的文本
- 30. 如何使独立的功能在不同的目标jQuery上?
但是,在你们提供的“ - Dlog4j.configuration = /路径/要/ log4j.properties“?它似乎不是Flink的命令行选项。 –