Python 通过SSH提交火花作业后气流停止

Python 通过SSH提交火花作业后气流停止,python,scala,apache-spark,airflow,Python,Scala,Apache Spark,Airflow,我正在使用Apache Airflow standalone提交Spark作业,以连接到边缘节点,并使用简单的bash命令提交作业 它大部分工作正常,但有时一些随机任务正在不确定地运行 我的工作成功了,但仍在按气流运行 当我检查日志时,就好像作业之后气流停止了,好像它没有得到返回值一样 为什么会发生这种情况?一些作业运行10小时以上,并成功地监视它们,而另一些作业则失败 我只有Spark的日志(在INFOlevel),没有工作驱动程序打印的任何内容 它不依赖于部署模式。我同时使用了客户机和集群,

我正在使用Apache Airflow standalone提交Spark作业,以连接到边缘节点,并使用简单的
bash命令提交作业

它大部分工作正常,但有时一些随机任务正在不确定地运行

我的工作成功了,但仍在按气流运行

当我检查日志时,就好像作业之后气流停止了,好像它没有得到返回值一样

为什么会发生这种情况?一些作业运行10小时以上,并成功地监视它们,而另一些作业则失败

我只有Spark的日志(在
INFO
level),没有工作驱动程序打印的任何内容

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

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

编辑:

我用的是气流1.8

我没有安装SparkSubmitOperator,因为: “执行者需要访问本地命令行外壳上的spark submit命令。需要安装spark库。”

我的airflow只是一个没有hadoop二进制文件的VM。请执行一些SSH连接,然后在边缘节点上提交

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

PS2:今天早上,一份工作跑了一整夜(即使他本该在30分钟内跑完…)。我使用netstat检查是否有我的应用程序用户连接到SSH和。。。没什么,SSH连接断开了

相同的任务、相同的DAG、不同的运行:

好:

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

失败:

[2018-07-04 18:52:12849]{base_task_runner.py:95}INFO-子任务:[2018-07-04 18:52:12849]{ssh_execute_operator.py:146}INFO-18/07/04 18:52:12 INFO scheduler.DAGScheduler:作业5完成:清理weets时的json.scala:249,耗时8.411721秒 [2018-07-04 18:52:13530]{base_task_runner.py:95}信息-子任务:[2018-07-04 18:52:13530]{ssh_execute_operator.py:146}信息-18/07/04 18:52:13信息数据源。FileFormatWriter:已提交作业空值。 [2018-07-04 18:52:13531]{base_task_runner.py:95}信息-子任务:[2018-07-04 18:52:13530]{ssh_execute_operator.py:146}信息-18/07/04 18:52:13信息数据源。FileFormatWriter:已完成作业null的统计处理

返回小姐


最后一次编辑:我删除了每个作业的everylogs(打印/显示),它似乎可以正常工作。

连接断开或ssh超时可能是问题吗?可能是,我不知道如何检查。正在考虑缓冲区太小或缺少气流配置。。。有时,这是一项整天都处于“运行”状态的特定任务,即使我重新启动了调度程序。在没有解释的情况下,他在X次之后切换到“成功”。只是一个想法——我还没有检查它。您可以连接到边缘节点,并使用
netstat
(或)检查活动连接以查看会话是否仍在连接,如果未连接,请检查sshd日志以了解关闭事件。这可能会缩小范围…你在运行什么版本的Airfow?为什么不使用随气流而来的,至少值得一看。