首页 > 解决方案 > 通过在 Livy 上提交批量 POST 方法并跟踪作业,使用 Airflow 提交 Spark 作业

问题描述

我想使用 Airflow 来编排作业,包括运行一些 pig 脚本、shell 脚本和 spark 作业。

主要在 Spark 作业上,我想使用 Apache Livy,但不确定使用或运行 spark-submit 是否是个好主意。

即使我提交了使用 Airflow 跟踪 Spark 作业的最佳方法是什么?

标签: apache-sparkairflowlivy

解决方案


我的假设是您的应用程序JAR包含要提交到远程集群的代码Java。根据其他可能性进行评估时,可以说是远程的最佳选择:ScalaSparkLivyspark-submit

  • 指定远程masterIP需要修改全局配置/环境变量
  • 使用SSHOperatorSSH连接可能会中断
  • 使用EmrAddStepsOperator:取决于EMR

关于跟踪

  • Livy 只报告 state而不是进度(阶段完成百分比)
  • 如果您同意,您可以通过 API轮询Livy服务器并在控制台中REST继续打印日志,这些将出现在 WebUI 的任务日志中 ( View Logs)

其他注意事项

  • Livy SparkSession支持POST/batches请求重用
  • 如果这是必要的,您将不得不编写您的应用程序代码PySpark并使用POST/session请求

参考


有用的链接


推荐阅读