了解星火:群集管理器,主机和驱动器节点

问题描述:

读到这里question,我想问其他问题:了解星火:群集管理器,主机和驱动器节点

  1. 群集管理器是一个长期运行的服务,在哪个节点正在运行?
  2. Master和Driver节点可能是同一台机器吗?我认为在某个地方应该有一个规则说明这两个节点应该不同?
  3. 如果Driver节点失败,谁负责重新启动应用程序?以及究竟会发生什么?即主节点,集群管理器和工作人员节点将如何参与(如果他们这样做)以及以何种顺序?
  4. 类似于上一个问题:如果主节点发生故障,会发生什么情况,谁负责从故障中恢复?

群集管理器是一个长期运行的服务,在哪个节点正在运行?

群集管理器是Spark独立模式主过程。它可以在./sbin/start-master.sh的任何地方启动,在YARN它将是资源管理器。

Master和Driver节点可能是同一台机器吗?我认为在某个地方应该有一个规则说明这两个节点应该不同?

Master是每个群集和Driver是每个应用程序。对于独立/纱线群集,Spark目前支持两种部署模式。

  1. 在客户端模式下,驱动程序在相同的工艺提交申请客户推出。
  2. 在群集模式,然而,对于独立驾驶员从工人的一个推出纱线应用主节点内部,并且在客户端进程,只要其满足它的责任退出提交申请而无需等待申请完成。

如果在主节点与--deploy-mode client提交了一份申请,都主机和驱动器将在同一节点上。检查deployment of Spark application over YARN

柜面其中驱动器节点出现故障,谁负责重新启动应用程序?以及究竟会发生什么?即主节点,集群管理器和工作人员节点将如何参与(如果他们这样做)以及以何种顺序?

如果驱动程序无法所有执行人任务会被终止用于提交/触发火花的应用。

当主节点发生故障时,会发生什么情况,谁负责从故障中恢复?

主节点故障有两种处理方式。

  1. 备ZooKeeper的大师:

    利用动物园管理员提供地区*选举和一些州的存储, 您可以连接到相同的 ZooKeeper的实例集群启动多个硕士学位。一个将被选为“领导者”,其他人将保持待机模式。如果当前领导者死亡,另一位主人将被选中,恢复老主人的状态,然后恢复 调度。整个恢复过程(从第一个 领导者倒下的时间)应该需要1到2分钟。请注意,此延迟仅影响调度新应用程序 - 已在主服务器故障切换期间运行的应用程序不受影响。 check here for configurations

  2. 单节点故障恢复与本地文件系统:

    动物园管理员是去生产水平高 可用性的最佳方式,但如果你只是希望能够重新启动主机如果 它关闭,FILESYSTEM模式可以处理它。当应用程序 和Workers注册时,它们有足够的状态写入所提供的 目录,以便在主进程重新启动时恢复它们。 check here for conf and more details

群集管理器是一个长期运行的服务,在哪个节点正在运行?

集群管理器只是SchedulerBackends用来启动任务的资源(即CPU和RAM)的管理器。 集群管理器没有为Apache Spark做任何事情,但提供资源,一旦Spark执行器启动,他们直接与驱动程序通信以运行任务。

你可以通过执行启动一个独立的主服务器:

./sbin/start-master.sh 

可以在任何地方开始。

要运行星火集群

./bin/spark-shell --master spark://IP:PORT 

上的应用程序有没有可能是法师和驱动程序的节点将在同一台机器? 我认为应该有一个规则说明这两个节点应该不同?

在独立模式下,当您启动机器时,某些JVM将启动。您的SparK Master将启动,并且在每台机器上,Worker JVM将启动并且它们将向Spark Master注册。 两者都是资源管理器。当您启动您的应用程序或以集群模式提交您的应用程序时,无论您在何处ssh启动该应用程序,驱动程序都会启动。 驱动程序JVM将联系SparK Master执行程序(Ex),并在独立模式下工作人员将启动Ex。 因此,Spark Master是每个群集的驱动程序JVM是每个应用程序。

如果Driver节点失败,谁负责重新启动应用程序?以及究竟会发生什么? 即主节点,群集管理器和工作者节点将如何涉及(如果他们这样做)以及以何种顺序?

如果Ex JVM会崩溃Worker JVM将启动Ex,并且当Worker JVM崩溃时Spark Master将启动它们。 并与群集中部署模式星火独立的集群,你还可以指定--supervise,以确保驱动程序自动重新启动,如果它失败,非零退出code.Spark法师将启动Driver JVM

类似于上一个问题:如果主节点发生故障, 究竟会发生什么情况,以及谁负责从故障中恢复?

如果在主服务器上失败,将导致执行程序无法与其通信。所以,他们会停止工作。主人失败会使司机无法与其沟通工作状态。所以,你的应用程序将会失败。 主流损失将被正在运行的应用程序所认可,但除此之外,这些应该会继续或多或少地发生,除非出现两个重要的例外:

1.应用程序无法以优雅的方式完成。

2.if Spark Master is down工人将尝试重新注册WithMaster。如果多次失败,工人就会放弃。

reregisterWithMaster() - 重新注册此工作人员与之通信的活动主人。如果没有,那么这意味着这个工人仍然是自举,并且还没有与主人建立联系,在这种情况下,我们应该重新注册所有主人。 与failures.worker期间活动的主只能重新注册是非常重要的无条件试图与所有的主机重新注册, 将可能出现种族condition.Error火花4592详细介绍:

此时长时间运行应用程序将无法继续处理,但仍不会立即失败。 相反,应用程序将等待主服务器返回联机(文件系统恢复)或来自新领导者(Zookeeper模式)的联系人,如果发生这种情况,它将继续处理。