【问题标题】:How to schedule/trigger spark jobs in Cloudera?如何在 Cloudera 中安排/触发 spark 作业?
【发布时间】:2019-04-22 13:02:44
【问题描述】:

目前我们的项目在 MR 上,我们使用 Oozie 来编排我们的 MR Jobs。现在我们正在迁移到 Spark,并且想知道在 CDH 集群上调度/触发 Spark 作业的推荐方法。请注意,CDH Oozie 不支持 Spark2 作业。所以请为此提供一个替代方案。

【问题讨论】:

    标签: java scala apache-spark hadoop cloudera


    【解决方案1】:

    上次我查看时,Hue 在 Worlflow 编辑器中有一个 Spark 选项。如果 Cloudera 不支持它,我不确定它为什么会在那里......

    不过,CDH Oozie 确实支持纯 shell 脚本,但您需要确保所有 NodeManager 都将在本地服务器上提供 spark-submit 命令。

    如果这不起作用,它还支持用于运行 JAR 的 Java 操作,因此您可以编写所有 Spark 脚本,以从那里加载任何配置的 main 方法开始

    【讨论】:

    • 我们如何查看 spark UI 的作业触发器,像这样?监控等如何与这些一起工作?
    • 我不记得了,但是 Spark UI 应该是一样的......无论您如何运行程序(shell 或 Oozie),它仍然在 YARN 中执行。对于 Oozie,我可能会使用客户端部署模式,以便 Oozie 可以收集驱动程序日志,并从驱动程序日志中打印出 Spark UI 地址。对于监控,仅在所有 YARN 容器上收集 JMX 或日志将是一个好的开始,但 Oozie 会收集作业状态信息
    【解决方案2】:

    一旦您从 shell 提交了 spark 作业,例如: spark-submit <script_path> <arguments_list> 它被提交到 CDH 集群。您将立即能够在 Hue 中看到 spark 作业及其进度。这就是我们触发 spark 作业的方式。

    此外,要编排一系列作业,您可以在其周围使用 shell 脚本包装器。或者,您可以使用 cron 作业定时触发。

    【讨论】:

    • 但是我们如何安排它们,如何创建一个包含多个 Spark 作业的工作流?有没有替代火花提交的方法?
    • 正如我在答案中提到的,您可以使用 crontab 作业来安排它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    • 1970-01-01
    • 2015-05-13
    • 2020-01-05
    • 2020-09-15
    相关资源
    最近更新 更多