Flink CDC中我flink任务是用 flink run-application -t yarn-application 的方式运行在yarn上的。现在问题是任务日志一直是一个,没有滚动的生成。这个滚动日志怎么配啊?我根据官网的说法修改了log4j-cli.properties 和log4j-session.properties 配置
通过 flink run-application -t yarn-application
方式运行 Flink CDC 任务时,任务日志默认是输出到一个文件中的,并不会自动滚动生成新的日志文件。如果你希望实现滚动日志的功能,可以按照以下步骤进行配置:
log4j-session.properties
文件,找到 log4j.appender.file
的配置,将其修改为如下内容:log4j.rootLogger=INFO, file
# RollingFileAppender configuration
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=${log.file}
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n
这样配置将启用 RollingFileAppender
,并设置每个日志文件的最大大小为 10MB,最多保留 10 个备份文件。
-Dlog.file=<日志文件路径>
参数指定日志文件的输出路径。例如:$ flink run-application -t yarn-application -Dlog.file=/path/to/logfile MyApp.jar
确保 <日志文件路径>
是一个可写的目录,并具有适当的访问权限。
通过以上配置,Flink CDC 任务的日志将会滚动生成新的日志文件,每个文件大小不超过 10MB,并保留最多 10 个备份文件。
请注意,上述配置是针对 Flink 的 Session 模式(yarn-session
)运行的任务。如果你在 Standalone 或其他模式下运行任务,请相应地修改对应的 log4j
配置文件。
Flink CDC 中,滚动日志(rolling log)是指将日志文件按照一定大小或时间进行切分,以防止单个日志文件过大,影响系统性能和稳定性。如果您的 Flink 任务没有生成滚动日志,可能是因为 Flink 的日志配置参数没有正确设置。
要启用 Flink CDC 的滚动日志功能,您可以在 Flink 的配置文件中设置以下参数:
ini
Copy
log.file = flink-cdc.log
log.dir = /path/to/flink/logs
log.max-size = 100
log.max-history = 7
log.roll-mode = size
其中,log.file 参数设置日志文件名称,log.dir 参数设置日志文件目录,log.max-size 参数设置日志文件大小,log.max-history 参数设置日志文件最大保留时间,log.roll-mode 参数设置日志文件滚动策略,可以根据实际需求进行配置。
可以尝试修改flink-conf/log4j.properties文件中的参数,以启用滚动日志。默认情况下,Flink的日志是静态的,不会滚动。如果想要启用滚动日志,请将以下参数设置为true:
log4j.appender.rolling.type=RollingFile
log4j.appender.rolling.filePattern=logs/taskmanager.log-%d{yyyy-MM-dd_HH-mm-ss}
log4j.appender.rolling.layout=org.apache.log4j.PatternLayout
log4j.appender.rolling.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.rolling.policies.time.TimeBasedTriggeringPolicy=true
log4j.appender.rolling.policies.size.SizeBasedTriggeringPolicy=10MB
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。