Как перенаправить журналы Apache Spark с драйвера и подчиненных устройств на консоль компьютера, который запускает задание Spark с помощью log4j? - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь создать приложение Apache Spark, которое нормализует CSV-файлы из HDFS (изменяет разделитель, исправляет ломаные линии).Я использую log4j для ведения журнала, но все журналы просто печатаются в исполнителях, поэтому единственный способ проверить их - использовать команду yarn logs -applicationId.Есть ли способ, которым я могу перенаправить все журналы (от драйвера и от исполнителей) на мой узел шлюза (тот, который запускает задание спарк), чтобы я мог проверить их во время выполнения?

Ответы [ 3 ]

0 голосов
/ 04 декабря 2018

Согласно https://spark.apache.org/docs/preview/running-on-yarn.html#configuration,

YARN имеет два режима для обработки журналов контейнера после завершения приложения.Если агрегирование журналов включено (с конфигурацией yarn.log-aggregation-enable в файле yarn-site.xml), журналы контейнеров копируются в HDFS и удаляются на локальном компьютере.

Вы также можете просматривать файлы журналов контейнеров непосредственно в HDFS.используя оболочку HDFS или API.Каталог, в котором они расположены, можно найти, посмотрев ваши конфигурации YARN (yarn.nodemanager.remote-app-log-dir и yarn.nodemanager.remote-app-log-dir-suffix in yarn-site.xml).

Я не уверен, происходит ли агрегация журналов с рабочих узловв режиме реального времени !!

0 голосов
/ 04 декабря 2018

Вы должны иметь реквизиты log4j для исполнителей, настроенные для записи локальных файлов для себя.Потоковая обратная передача к драйверу вызовет ненужную задержку при обработке.

Если вы планируете иметь возможность «привязывать» журналы почти в реальном времени, вам потребуется инструментальное решение, такое как Splunk или Elasticsearch, и использоватьтакие инструменты, как Splunk Forwarders, Fluentd или Filebeat, которые являются агентами в каждом блоке, которые специально отслеживают все настроенные пути журналов и отправляют эти данные в целевой индексатор, который будет анализировать и извлекать данные полей журнала.

ТеперьСуществуют и другие альтернативы, такие как Streamsets, Nifi или Knime (все с открытым исходным кодом), которые предлагают больше инструментов для сбора ошибок обработки событий и эффективно позволяют «очередям мертвых писем» обрабатывать ошибки особым образом.инструменты - программирование не требуется.

0 голосов
/ 04 декабря 2018

я думаю, что это невозможно.Когда вы выполняете спарк в локальном режиме, вы можете увидеть его в консоли.В противном случае вам придется изменить свойства log4j для пути к файлу журнала.

...