【问题标题】:Spark job submission using Airflow by submitting batch POST method on Livy and tracking job通过在 Livy 上提交批量 POST 方法并跟踪作业,使用 Airflow 提交 Spark 作业
【发布时间】:2019-06-11 05:22:08
【问题描述】:

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

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

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

【问题讨论】:

    标签: apache-spark airflow livy


    【解决方案1】:

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

    • 指定远程master IP:Requires 修改全局配置/环境变量
    • 使用SSHOperator:SSH 连接可能中断
    • 使用EmrAddStepsOperator:依赖于EMR

    关于跟踪

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

    其他注意事项

    • Livy doesn't support 重用SparkSession 用于POST/batches 请求
    • 如果必须这样做,您必须在 PySpark 中编写应用程序代码并使用 POST/session 请求

    参考文献


    有用的链接

    【讨论】:

    • 谢谢@y2k-shubham。我的源代码在 scala 中,并希望使用 jar 作为应用程序运行。看起来 Livy 是更好的选择,我将使用 POST 方法批量提交。跟踪进度是有问题的,但我认为现在跟踪状态应该足够好了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多