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

时间:2018-07-04 16:23:56

标签: python scala apache-spark airflow

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

大多数情况下运行良好,但有时一些随机任务无法确定地运行。

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

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

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

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

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

要解决此问题,我想知道安装this plugin是否可以工作。

编辑:

我正在使用Airflow 1.8。

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

我的气流只是一个没有hadoop二进制文件的VM。 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}信息-18/07 / 05 10:48:55 INFO数据源.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信息datasources.FileFormatWriter:作业空的处理状态完成。   [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 18:52:12 INFO scheduler.DAGcheduler:作业5完成:CleaningTweets.scala:249的json,耗时8.411721 s   [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数据源.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:完成作业空值的处理状态。

小姐归来...

最后编辑:我删除了每个作业的所有日志(打印/显示),并且似乎可以正常工作。

0 个答案:

没有答案