3

我有一个使用 logback 作为日志框架的 flink 作业,因为需要将日志发送到 logstash 并且 logback 有一个 logstash appender ( logstash-logback-appender )。appender 工作正常,当从 Eclipse 之类的 IDE 运行 flink 作业时,我可以在 logstash 中看到应用程序日志。日志配置文件logback.xml位于src/main/resources并包含在类路径中。即使从 IDE 外部的命令行运行作业,日志记录也能正常工作。

但是,当我通过 flink 仪表板在 flink 集群(独立,开始使用./start-cluster.bat)上部署此作业时,会忽略 logback 配置,并且不会将日志发送到logstash

我阅读了有关 flink 日志记录机制的更多信息,并遇到了有关配置 logback 的文档。本文档中提到的步骤适用于一些额外的步骤,例如logstash-logback-encoder在 lib/ 文件夹中添加 lib 以及logbackjars。

即使上面提到的步骤有效,这也是有问题的,因为flink 使用的flink/conf文件夹中的 logback 配置适用于整个 flink 设置和在 flink 上运行的所有作业。作业不能有自己的日志记录配置。例如。我希望 job1 写信给file,consolelogstashjob 2 只写信给file.

从仪表板启动的每个 flink 作业如何提供单独的日志记录配置?在仪表板上提交作业时,是否可以通过任何方式传递日志记录配置?

有没有办法强制 flink 在类路径上使用日志配置?

4

1 回答 1

3

Flink 目前不支持为每个作业指定单独的日志配置。日志记录配置对整个集群始终有效。

解决此问题的一种方法是以每个作业模式启动作业。这意味着您为每个 Flink 作业启动一个专用的 Flink 集群。

bin/flink run -m yarn-cluster -p 2 MyJobJar.jar
于 2018-11-29T09:52:08.250 回答