开发者社区> 问答> 正文

Flink日志记录限制:如何将日志记录配置传递给flink作业

flink小助手 2018-12-11 16:46:51 1566

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

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

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

即使上面提到的步骤有效,这也是有问题的,因为flink使用的flink / conf文件夹中的logback配置适用于整个flink设置和flink上运行的所有作业。作业无法拥有自己的日志记录配置。例如。我想JOB1写入file,console,logstash和工作2写入只file。

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

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

logback apache-flink logstash-logback-encoder

IDE Java 开发工具 Android开发 流计算
分享到
取消 提交回答
全部回答(1)
  • flink小助手
    2019-07-17 23:19:54

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

    解决此问题的方法是以按作业模式启动作业。这意味着您可以为每个Flink作业启动一个专用的Flink集群。
    bin/flink run -m yarn-cluster -p 2 MyJobJar.jar

    0 0

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题