Трубопровод луча не перемещается в потоке данных Google, пока работает нормально на прямом бегуне - PullRequest
1 голос
/ 15 мая 2019

У меня конвейер Beam хорошо работает локально с DirectRunner.Однако при переключении на DataFlowRunner задание началось, и я могу видеть блок-схему из веб-интерфейса потока данных Google.Однако задание не запускается.Он висел там, пока я не прекратил работу.Я использую Beam 2.10.Я вижу автоматическую настройку масштабирования процессора и никаких исключений в журнале.

Я думаю, это как-то связано с тем, как я создаю файл Jar.Я использую теневой Jar для создания файла JAR в сборке Gradle.Основная причина использования ShadowJar - для mergeServiceFiles ().Если не использовать mergeServiceFiles (), задание будет выполняться с исключением, например Файловая система не найдена для gs .

Итак, я скопировал количество слов из репозитория шаблонов потока данных Google и упаковал их в файл jar.Это показывает то же самое, работа началась, но не движется.Код был изменен с минимальным изменением учетных данных учетной записи службы.Вместо исходных PipelineOptions я расширяю GcsOptions для учетных данных.

Пробный луч 2.12, 2.10.

1 Ответ

1 голос
/ 15 мая 2019

Покопайтесь и нашли полный журнал, нажав stackdrive в правом верхнем углу показанного журнала. Нашел следующее

Caused by: java.lang.IllegalStateException: Detected both log4j-over-slf4j.jar AND bound slf4j-log4j12.jar on the class path, preempting StackOverflowError. See also http://www.slf4j.org/codes.html#log4jDelegationLoop for more details. at org.slf4j.impl.Log4jLoggerFactory.<clinit>(Log4jLoggerFactory.java:54) ....

Тогда есть java failed with exit status 1 запись журнала несколько строк под ошибкой log4j. По сути, Java-программа уже остановлена, но пользовательский интерфейс потока данных все еще показывает, что она работает на блок-схеме.

Используйте скрипт сборки gradle, чтобы исключить все slf4j-log4j12 из compile ('org.apache.hadoop:hadoop-mapreduce-client-core:3.2.0') {exclude group: 'org.slf4j', module: 'slf4j-log4j12'}

и другие зависимости содержат slf4j-log4j12, и задание начинает двигаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...