【发布时间】:2016-09-17 01:35:57
【问题描述】:
我有一个节点的 p2p 网状网络。它有自己的平衡,并且给定任务T 可以可靠地执行它(如果一个节点发生故障,另一个节点将继续)。我的网状网络有 Java 和 Python api。我想知道让 Spark 调用我的 API 来执行午餐任务需要哪些步骤?
【问题讨论】:
标签: apache-spark pyspark scalability scheduler distributed-computing
我有一个节点的 p2p 网状网络。它有自己的平衡,并且给定任务T 可以可靠地执行它(如果一个节点发生故障,另一个节点将继续)。我的网状网络有 Java 和 Python api。我想知道让 Spark 调用我的 API 来执行午餐任务需要哪些步骤?
【问题讨论】:
标签: apache-spark pyspark scalability scheduler distributed-computing
哦,男孩,这是一个非常广泛的问题,但我同意丹尼尔的观点。如果你真的想要这样做,你可以先从:
Scheduler Backends,声明如下:
作为 Spark 中的调度程序后端,假设一个类似于 Apache Mesos 的模型,其中“应用程序”作为机器获得资源提供 变得可用并且可以在它们上启动任务。一旦调度器 backend获取资源分配,可以启动executors。
TaskScheduler,因为您需要了解任务的含义 计划构建一个调度程序,其中提到了诸如 这个:
TaskScheduler 获取每个阶段从 DAGScheduler 提交给它的任务集(作为 TaskSets),并负责发送 任务到集群,运行它们,如果有重试 失败,并减少落后者。
这里的一个重要概念是依赖无环图(GDA), 你可以在哪里查看它的 GitHub page。
你也可以阅读 What is the difference between FAILED AND ERROR in spark application states 获得直觉。
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 并感受一下。希望所有这些都足以让您入门! :)
【讨论】:
【讨论】: