Поток воздуха прекращается после задания Spark, переданного через SSH - PullRequest
0 голосов
/ 04 июля 2018

Я использую автономный Apache Airflow для отправки заданий Spark с помощью SSHExecutorOperator для подключения к пограничному узлу и отправки заданий с помощью простого BashCommand.

В основном это работает хорошо, но иногда некоторые случайные задачи выполняются неопределенно.

Моя работа выполнена успешно, но все еще выполняется в соответствии с Airflow.

Когда я проверяю журналы, создается впечатление, что поток воздуха прекратился после задания, как если бы он не получил возвращаемое значение.

Почему это могло случиться? Некоторые задания выполняются в течение 10 часов +, и Airflow успешно их просматривает, а другие не выполняются.

У меня есть только журналы Spark (на уровне INFO), на которых ничего не печатается драйвером задания.

Это не зависит от режима развертывания. Я использовал client и cluster, и это, похоже, не зависит от этого. Иногда Airflow не может посмотреть какой-нибудь простой скрипт на Python.

Чтобы решить эту проблему, мне было интересно, может ли установка этот плагин работать.

РЕДАКТИРОВАТЬ:

Я использую Airflow 1.8.

Я не установил SparkSubmitOperator, потому что: «Исполнители должны иметь доступ к команде spark-submit в локальной оболочке командной строки. Должны быть установлены библиотеки Spark.».

Мой поток - просто виртуальная машина без двоичных файлов hadoop. Воздушный поток делает некоторое SSH-соединение, затем отправляется на пограничный узел.

Когда я просматриваю документацию SparkSubmitOperator, я не думаю, что могу подключиться к пограничному узлу для отправки. Отсутствует параметр "conn_id" или SSH.

PS2: Этим утром работа выполнялась всю ночь напролет (даже если он должен был бежать через 30 минут ...). Я использую netstat, чтобы проверить, не подключился ли мой пользователь приложения воздушного потока к SSH и ... ничего, соединение SSH прервалось.

Та же задача, тот же DAG, другой RUN:

ОК:

[2018-07-05 10: 48: 55,509] {base_task_runner.py:95} INFO - подзадача: [2018-07-05 10: 48: 55,509] {ssh_execute_operator.py:146} INFO - 18/07 / 05 10:48:55 INFO datasources.FileFormatWriter: задание пустое. [2018-07-05 10: 48: 55,510] {base_task_runner.py:95} INFO - подзадача: [2018-07-05 10: 48: 55,510] {ssh_execute_operator.py:146} INFO - 18/07/05 10 : 48: 55 INFO datasources.FileFormatWriter: статистика завершенной обработки задания нулевая. [2018-07-05 10: 49: 08,407] {jobs.py:2083} INFO - Задание завершено с кодом возврата 0

FAIL:

[2018-07-04 18: 52: 12,849] {base_task_runner.py:95} INFO - подзадача: [2018-07-04 18: 52: 12,849] {ssh_execute_operator.py:146} INFO - 18/07 / 04 18:52:12 INFO scheduler. DAGScheduler: задание 5 выполнено: json at CleaningTweets.scala: 249, заняло 8,411721 с [2018-07-04 18: 52: 13 530] {base_task_runner.py:95} INFO - подзадача: [2018-07-04 18: 52: 13 530] {ssh_execute_operator.py:146} INFO - 18/07/04 18 : 52: 13 INFO datasources.FileFormatWriter: задание пустое. [2018-07-04 18: 52: 13 531] {base_task_runner.py:95} INFO - подзадача: [2018-07-04 18: 52: 13 530] {ssh_execute_operator.py:146} INFO - 18/07/04 18 : 52: 13 INFO datasources.FileFormatWriter: статистика завершенной обработки задания нулевая.

Мисс возврат ...

ПОСЛЕДНИЕ РЕДАКТИРОВАТЬ: я удалил все журналы (печать / показ) из всех заданий, и, кажется, работает.

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