我有一个 flink 作业,它使用 logback 作为日志记录框架,因为日志需要发送到logstash,而 logback 有一个 logstash 附加程序(Logstash-logback-appender)。 Appender 工作正常,当 Flink 作业从 Eclipse 等 IDE 运行时,我可以在 Logstash 中看到应用程序日志。日志记录配置文件日志记录文件被放置在src/主/资源并包含在类路径中。即使从 IDE 外部的命令行运行作业,日志记录也能正常工作。
但是,当我在 flink 集群(独立,开始使用)上部署此作业时./start-cluster.bat
)通过flink仪表板,logback配置被忽略,日志不会发送到logstash.
我阅读了有关 flink 日志机制的更多信息并发现有关配置 logback 的文档 https://ci.apache.org/projects/flink/flink-docs-stable/monitoring/logging.html#configuring-logback。本文档中提到的步骤可以与一些其他步骤(例如添加logstash-logback-encoder
lib/ 文件夹中的 lib 以及logback
jars.
即使上面提到的步骤有效,这也是有问题的,因为 logback 配置在弗林克/会议flink 使用的文件夹适用于整个 flink 设置以及 flink 上运行的所有作业。作业不能有自己的日志记录配置。例如。我想要 job1 写信给file
,console
,logstash
和作业 2 仅写入file
.
如何为从仪表板启动的每个 Flink 作业提供单独的日志记录配置?在仪表板上提交作业时,有什么方法可以传递日志记录配置吗?
有没有办法强制 flink 在类路径上使用日志记录配置?
Flink 目前不支持为每个作业指定单独的日志配置。日志记录配置对于整个集群始终有效。
解决此问题的一种方法是以每个作业模式启动作业。这意味着您为每个 Flink 作业启动一个专用的 Flink 集群。
bin/flink run -m yarn-cluster -p 2 MyJobJar.jar
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)