通过 SSH 提交 Spark 作业后气流停止

Gre*_*Gus 5 python scala apache-spark airflow

我正在使用 Apache Airflow 独立提交我的 Spark 作业SSHExecutorOperator以连接到边缘节点并使用简单的BashCommand.

它大多运行良好,但有时一些随机任务会不确定地运行。

我的工作成功了,但仍在根据 Airflow 运行。

当我检查日志时,就好像 Airflow 已经停止跟踪作业,就好像它没有得到返回值一样。

为什么会发生这种情况?有些作业运行了 10 小时以上,Airflow 会成功观察它们,而其他作业则失败。

我只有 Spark 的日志(在INFO级别),而没有作业驱动程序打印的任何内容。

它不依赖于部署模式。我使用了clientcluster它似乎不依赖于此。有时,Airflow 无法观看一些简单的 Python 脚本。

为了解决这个问题,我想知道安装这个插件是否可行。

编辑 :

我正在使用气流 1.8。

我没有安装 SparkSubmitOperator,因为:“执行程序需要访问本地命令行 shell 上的 spark-submit 命令。需要安装 Spark 库。”。

我的气流只是一个没有 hadoop 二进制文件的虚拟机。Airflow 做一些 SSH 连接,然后在 Edge 节点上提交。

当我查看 SparkSubmitOperator 文档时,我认为我无法连接到边缘节点进行提交。没有“conn_id”或 SSH 参数。

PS2:今天早上,一项工作整夜运行(即使他应该在30分钟内运行......)。我使用 netstat 来检查我的气流应用程序用户是否与 SSH 连接,并且......没有,SSH 连接在 imo 中消失了。

相同的任务,相同的 DAG,不同的 RUN :

好的 :

[2018-07-05 10:48:55,509] {base_task_runner.py:95} 信息 - 子任务:[2018-07-05 10:48:55,509] {ssh_execute_operator.py:146} INFO - 18/07/05 :48:55 信息 datasources.FileFormatWriter:已提交作业空值。[2018-07-05 10:48:55,510] {base_task_runner.py:95} 信息 - 子任务:[2018-07-05 10:48:55,510] {ssh_execute_operator.py:146} 信息 - 18/07/05 :48:55 INFO datasources.FileFormatWriter:已完成作业 null 的处理统计信息。[2018-07-05 10:49:08,407] {jobs.py:2083} 信息 - 任务退出,返回代码为 0

失败 :

[2018-07-04 18:52:12,849] {base_task_runner.py:95} 信息 - 子任务:[2018-07-04 18:52:12,849] {ssh_execute_operator.py:146} 信息 - 18/07/04 :52:12 INFO scheduler.DAGScheduler: Job 5 完成: json at CleaningTweets.scala:249, 耗时 8.411721 s [2018-07-04 18:52:13,530] {base_task_runner.py:95} INFO - Subtask: [200] 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} 信息 - 子任务:[2018-07-04 18:52:13,530] {ssh_execute_operator.py:146} 信息 - 18/08/04 :52:13 INFO datasources.FileFormatWriter:已完成作业 null 的处理统计信息。

小姐回...

最后编辑:我删除了每个作业的everylogs(打印/显示),它似乎有效。