【问题标题】:How to create a custom apache Spark scheduler?如何创建自定义 apache Spark 调度程序?
【发布时间】:2016-09-17 01:35:57
【问题描述】:

我有一个节点的 p2p 网状网络。它有自己的平衡,并且给定任务T 可以可靠地执行它(如果一个节点发生故障,另一个节点将继续)。我的网状网络有 Java 和 Python api。我想知道让 Spark 调用我的 API 来执行午餐任务需要哪些步骤?

【问题讨论】:

    标签: apache-spark pyspark scalability scheduler distributed-computing


    【解决方案1】:

    哦,男孩,这是一个非常广泛的问题,但我同意丹尼尔的观点。如果你真的想要这样做,你可以先从:

    1. Scheduler Backends,声明如下:

      作为 Spark 中的调度程序后端,假设一个类似于 Apache Mesos 的模型,其中“应用程序”作为机器获得资源提供 变得可用并且可以在它们上启动任务。一旦调度器 backend获取资源分配,可以启动executors。

    2. TaskScheduler,因为您需要了解任务的含义 计划构建一个调度程序,其中提到了诸如 这个:

      TaskScheduler 获取每个阶段从 DAGScheduler 提交给它的任务集(作为 TaskSets),并负责发送 任务到集群,运行它们,如果有重试 失败,并减少落后者。

      这里的一个重要概念是依赖无环图(GDA), 你可以在哪里查看它的 GitHub page

      你也可以阅读 What is the difference between FAILED AND ERROR in spark application states 获得直觉。

    3. Spark Listeners — Intercepting Events from Spark 也可以来 派上用场:

      Spark 侦听器拦截 Spark 调度程序在 Spark 应用程序执行过程中发出的事件。

      您可以先通过Exercise: Developing Custom SparkListener to monitor DAGScheduler in Scala 来检查您的理解。

    总的来说,Mastering Apache Spark 2.0 资源似乎很多,这里就不一一列举了。


    然后,你必须在这个游戏中遇到最终 Boss,Spark 的调度程序 GitHub page 并感受一下。希望所有这些都足以让您入门! :)

    【讨论】:

      【解决方案2】:
      1. 看看现有调度程序(YARN 和 Mesos)是如何实现的。
      2. 为您的系统实施调度程序。
      3. 将您的更改贡献给 Apache Spark 项目。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多