【问题标题】:Spark on YARN - Submiting Spark jobs from DjangoSpark on YARN - 从 Django 提交 Spark 作业
【发布时间】:2015-09-25 14:15:00
【问题描述】:

我正在开发一个包含以下组件的网络应用程序:

  • Apache Spark 在具有 3 个节点(spark 1.4.0、hadoop 2.4 和 YARN)的集群上运行
  • Django Web 应用服务器

Django 应用将创建“按需”火花作业(它们可以是并发作业,具体取决于使用该应用的用户数量)

我想知道是否有任何方法可以从 Django 中的 python 代码提交 spark 作业?我可以在 django 中集成 pyspark 吗?或者我可以直接调用 YARN API 来提交作业吗?

我知道我可以使用 spark-submit 脚本向集群提交作业,但我试图避免使用它。 (因为它必须是从代码中执行的 shell 命令,并且这样做不是很安全)

任何帮助将不胜感激。

非常感谢,

JG

【问题讨论】:

    标签: django apache-spark hadoop-yarn


    【解决方案1】:

    部分未经测试的答案:Django 是一个 Web 框架,因此很难管理长时间的作业(超过 30 秒),这可能是您的 spark 作业的情况。

    因此,您需要一个异步作业队列,例如 celery。这有点痛苦(不是那么糟糕,但仍然如此),但我建议你从那开始。

    然后你会有:

    • Django 启动/监控作业
    • rabbitMQ/celery 异步作业队列
    • 自定义 celery 任务,使用 pySpark 并启动 sparks

    【讨论】:

      【解决方案2】:

      github上有一个项目叫Ooyala的job server: https://github.com/ooyala/spark-jobserver.

      这允许您通过 HTTP 请求向 YARN 提交 Spark 作业。

      在 Spark 1.4.0+ 中也添加了支持以通过 HTTP 请求监控作业状态。

      【讨论】:

      • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
      猜你喜欢
      • 1970-01-01
      • 2015-08-20
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-22
      相关资源
      最近更新 更多