Ограничение ведения журнала Flink: как передать конфигурацию ведения журнала в задание Flink - PullRequest
0 голосов
/ 29 ноября 2018

У меня задание flink, в котором в качестве основы ведения журнала используется logback, поскольку журналы необходимо отправлять в logstash, а logback имеет приложение logstash ( logstash-logback-appender ).Приложение прекрасно работает, и я вижу журналы приложений в logstash, когда задание flink запускается из IDE, такой как Eclipse.Файл конфигурации ведения журнала logback.xml помещается в src / main / resources и включается в путь к классам.Ведение журнала работает нормально даже при запуске задания из командной строки вне среды IDE.

Однако, когда я развертываю это задание на кластере flink (автономно, начал использовать ./start-cluster.bat) через панель мониторинга flink, конфигурация входа в систему игнорируетсяи журналы не отправляются на logstash .

Я прочитал больше о механизме журналирования flink и наткнулся на документацию по настройке logback .Шаги, упомянутые в этой документации, прекрасно работают с некоторыми дополнительными шагами, такими как добавление logstash-logback-encoder lib в папку lib / вместе с logback jars.

Несмотря на то, что вышеупомянутые шаги работают, это проблематично, поскольку конфигурация входа в систему в папке flink / conf , которая используется flink, применяется ко всей настройке flink и ко всем работам, выполняющимся на flink,Задания не могут иметь собственную конфигурацию ведения журнала.Например,я хочу, чтобы job1 записывал в file, console, logstash и задание 2 записывал только в file.

Каким образом каждое задание flink, запускаемое с панели мониторинга, может быть снабжено отдельной регистрациейконфигурация?Есть ли способ передать настройку регистрации при отправке задания на панель мониторинга?

Есть ли какой-нибудь способ заставить flink использовать конфигурацию регистрации в classpath?

1 Ответ

0 голосов
/ 29 ноября 2018

Flink в настоящее время не поддерживает указание отдельных конфигураций ведения журнала для каждого задания.Конфигурация ведения журнала всегда действительна для всего кластера.

Способ решения этой проблемы - запуск заданий в режиме для каждого задания.Это означает, что для каждого задания Flink вы запускаете выделенный кластер Flink.

bin/flink run -m yarn-cluster -p 2 MyJobJar.jar
...