我正在独立使用Apache Airflow通过SSHExecutorOperator
提交我的Spark作业以连接到边缘节点,并使用简单的BashCommand
提交作业。
大多数情况下运行良好,但有时一些随机任务无法确定地运行。
我的工作成功,但是根据Airflow仍在运行。
当我检查日志时,就好像Airflow在作业之后停止了,好像没有得到返回值一样。
为什么会发生这种情况?有些作业会运行10小时以上,Airflow会成功监视它们,而另一些则失败。
我只有Spark的日志(处于INFO
级别,而作业驱动程序没有打印任何内容。
它不依赖于部署模式。我同时使用了client
和cluster
,但这似乎并不依赖于此。有时,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:完成作业空值的处理状态。
小姐归来...
最后编辑:我删除了每个作业的所有日志(打印/显示),并且似乎可以正常工作。