apache-spark - 如何使用 Airflow 监控 Spark 作业

标签 apache-spark airflow apache-airflow

我设置了几个 dag,最终以一个 spark-submit 命令结束到一个 spark 集群。如果这有所作为,我正在使用集群模式。无论如何,所以我的代码可以工作,但我意识到如果 spark 作业失败,我不一定会从 Airflow UI 中知道。通过集群模式触发作业,Airflow 将作业交给可用的工作人员,因此 Airflow 不知道 Spark 作业。

我该如何解决这个问题?

最佳答案

Airflow(从 1.8 版本开始)有

SparkSqlOperator - https://github.com/apache/incubator-airflow/blob/master/airflow/contrib/operators/spark_sql_operator.py ;
SparkSQLHook code - https://github.com/apache/incubator-airflow/blob/master/airflow/contrib/hooks/spark_sql_hook.py
SparkSubmitOperator - https://github.com/apache/incubator-airflow/blob/master/airflow/contrib/operators/spark_submit_operator.py
SparkSubmitHook code - https://github.com/apache/incubator-airflow/blob/master/airflow/contrib/hooks/spark_submit_hook.py

如果你使用这些,如果 spark 作业失败,airflow 任务将失败。如果您使用 spark1.x 获取实时日志,您可能必须更改 spark_submit_hook 文件中的日志记录部分,因为 spark-submit 甚至将某些 1.x 版本的错误记录到标准输出(我必须对 1.6.x 进行更改。 1).

另请注意,自上一个稳定版本以来,SparkSubmitOperator 已经有了很多改进。

关于apache-spark - 如何使用 Airflow 监控 Spark 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44038679/

相关文章:

airflow - Airflow DAG运行已触发,但从未执行?

java - 在主节点上触发Emr并提交作业(jar):

python - spark 可以将数据框拆分为 topandas 的部分

cron - 手动触发 Airflow DAG 会干扰预定的 Airflow 触发吗?

python - 如何将 Select * Postgres/Redshift 查询结果放入字典(列/值)

airflow - 使自定义 Airflow 宏扩展其他宏

python - 使用气流将文件流式传输到kafka

apache-spark - Apache Spark 用户推荐?

scala - Source.fromFile 不适用于 HDFS 文件路径

airflow - Airflow重启是否会影响当前正在运行的作业?