当前位置:  开发笔记 > 大数据 > 正文

了解Spark:Cluster Manager,Master和Driver节点

如何解决《了解Spark:ClusterManager,Master和Driver节点》经验,为你挑选了2个好方法。

阅读完这个问题后,我想提出更多问题:

    Cluster Manager是一个长期运行的服务,它在哪个节点上运行?

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

    如果Driver节点出现故障,谁负责重新启动应用程序?什么会发生什么?即主节点,Cluster Manager和Workers节点将如何参与(如果它们)以及以何种顺序?

    与上一个问题类似:如果主节点出现故障,将会发生什么,以及谁负责从故障中恢复?

mrsrinivas.. 16

1. Cluster Manager是一个长期运行的服务,它在哪个节点上运行?

Cluster Manager是 Spark独立模式下的主进程.它可以在任何地方开始./sbin/start-master.sh,在YARN中它将是资源管理器.

2. Master和Driver节点是否可能是同一台机器?我认为应该有一个规则说明这两个节点应该是不同的?

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

    在客户端模式下,驱动程序在与提交应用程序的客户端相同的进程中启动.

    但是,在集群模式下,对于独立模式,驱动程序其中一个Worker&for yarn启动,它在应用程序主节点内启动,客户端进程一旦履行其提交应用程序的责任就退出,而无需等待应用程序完成.

如果--deploy-mode client在主节点中提交的应用程序,则Master和Driver都将位于同一节点上.检查通过YARN部署Spark应用程序

3.如果Driver节点出现故障,谁负责重新启动应用程序?什么会发生什么?即主节点,Cluster Manager和Workers节点将如何参与(如果它们)以及以何种顺序?

如果驱动程序失败,则所有执行程序任务将因该提交/触发的spark应用程序而被终止.

4.如果主节点发生故障,将会发生什么以及谁负责从故障中恢复?

主节点故障以两种方式处理.

    使用ZooKeeper的备用大师:

    利用ZooKeeper提供领导者选举和一些状态存储,您可以在连接到同一ZooKeeper实例的群集中启动多个Masters.一个将被选为"领导者",其他人将保持待命模式.如果当前领导者死亡,将选出另一个主人,恢复旧主人的状态,然后恢复安排.整个恢复过程(从第一个领导者关闭时起)应该需要1到2分钟.请注意,此延迟仅影响计划新应用程序 - 在主故障转移期间已运行的应用程序不受影响.在这里查看配置

    使用本地文件系统进行单节点恢复:

    ZooKeeper是获得生产级别高可用性的最佳方式,但如果您只是希望能够在Master关闭时重新启动Master,则FILESYSTEM模式可以处理它.当应用程序和工作人员注册时,他们有足够的状态写入提供的目录,以便在重新启动主进程时可以恢复它们.在这里查看conf和更多细节


Nayan Sharma.. 5

Cluster Manager是一个长期运行的服务,它在哪个节点上运行?

集群管理器只是SchedulerBackends用于启动任务的资源(即CPU和RAM)的管理器.集群管理器不再对Apache Spark执行任何操作,而是提供资源,一旦Spark执行程序启动,它们就会直接与驱动程序通信以运行任务.

您可以通过执行以下命令启动独立主服务器:

./sbin/start-master.sh

可以在任何地方开始.

在Spark群集上运行应用程序

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

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

在独立模式下,当您启动计算机时,某些JVM将启动.您的SparK Master将启动并在每台计算机上启动Worker JVM,它们将向Spark Master注册.两者都是资源管理器.当您启动应用程序或以群集模式提交应用程序时,驱动程序将在您启动该应用程序的任何地方启动.驱动程序JVM将与执行程序(Ex)的SparK Master联系,在独立模式下,Worker将启动Ex.所以Spark Master是每个集群,驱动程序JVM是每个应用程序.

如果Driver节点出现故障,谁负责重新启动应用程序?什么会发生什么?即主节点,Cluster Manager和Workers节点将如何参与(如果它们)以及以何种顺序?

如果Ex JVM崩溃,那么Worker JVM将启动Ex,当Worker JVM发生故障时,Spark Master将启动它们.使用具有集群部署模式的Spark独立集群,您还可以指定--supervise以确保驱动程序在失败且退出代码为非零时自动重新启动.Spark Master将启动驱动程序JVM

与上一个问题类似:如果主节点出现故障,将会发生什么,以及谁负责从故障中恢复?

在master上失败将导致执行程序无法与之通信.所以,他们将停止工作.主人失败将使司机无法与其进行通信以获得工作状态.因此,您的应用程序将失败.正在运行的应用程序将确认主要丢失,但除非两个重要的例外情况,否则这些应该继续或多或少地发挥作用:

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

2.如果Spark Master关闭,Worker将尝试重新注册WithMaster.如果多次失败,工人就会放弃.

reregisterWithMaster() - 重新注册此工作者一直在与之通信的活动主服务器.如果没有,那么这意味着该工作者仍然在引导并且还没有与主服务器建立连接,在这种情况下我们应该重新注册所有主服务器.在故障期间仅重新注册活动主机是很重要的.工作人员无条件地尝试重新注册所有主人,可能会出现竞争条件.SPARK-4592中详述的错误:

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



1> mrsrinivas..:

1. Cluster Manager是一个长期运行的服务,它在哪个节点上运行?

Cluster Manager是 Spark独立模式下的主进程.它可以在任何地方开始./sbin/start-master.sh,在YARN中它将是资源管理器.

2. Master和Driver节点是否可能是同一台机器?我认为应该有一个规则说明这两个节点应该是不同的?

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

    在客户端模式下,驱动程序在与提交应用程序的客户端相同的进程中启动.

    但是,在集群模式下,对于独立模式,驱动程序其中一个Worker&for yarn启动,它在应用程序主节点内启动,客户端进程一旦履行其提交应用程序的责任就退出,而无需等待应用程序完成.

如果--deploy-mode client在主节点中提交的应用程序,则Master和Driver都将位于同一节点上.检查通过YARN部署Spark应用程序

3.如果Driver节点出现故障,谁负责重新启动应用程序?什么会发生什么?即主节点,Cluster Manager和Workers节点将如何参与(如果它们)以及以何种顺序?

如果驱动程序失败,则所有执行程序任务将因该提交/触发的spark应用程序而被终止.

4.如果主节点发生故障,将会发生什么以及谁负责从故障中恢复?

主节点故障以两种方式处理.

    使用ZooKeeper的备用大师:

    利用ZooKeeper提供领导者选举和一些状态存储,您可以在连接到同一ZooKeeper实例的群集中启动多个Masters.一个将被选为"领导者",其他人将保持待命模式.如果当前领导者死亡,将选出另一个主人,恢复旧主人的状态,然后恢复安排.整个恢复过程(从第一个领导者关闭时起)应该需要1到2分钟.请注意,此延迟仅影响计划新应用程序 - 在主故障转移期间已运行的应用程序不受影响.在这里查看配置

    使用本地文件系统进行单节点恢复:

    ZooKeeper是获得生产级别高可用性的最佳方式,但如果您只是希望能够在Master关闭时重新启动Master,则FILESYSTEM模式可以处理它.当应用程序和工作人员注册时,他们有足够的状态写入提供的目录,以便在重新启动主进程时可以恢复它们.在这里查看conf和更多细节



2> Nayan Sharma..:

Cluster Manager是一个长期运行的服务,它在哪个节点上运行?

集群管理器只是SchedulerBackends用于启动任务的资源(即CPU和RAM)的管理器.集群管理器不再对Apache Spark执行任何操作,而是提供资源,一旦Spark执行程序启动,它们就会直接与驱动程序通信以运行任务.

您可以通过执行以下命令启动独立主服务器:

./sbin/start-master.sh

可以在任何地方开始.

在Spark群集上运行应用程序

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

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

在独立模式下,当您启动计算机时,某些JVM将启动.您的SparK Master将启动并在每台计算机上启动Worker JVM,它们将向Spark Master注册.两者都是资源管理器.当您启动应用程序或以群集模式提交应用程序时,驱动程序将在您启动该应用程序的任何地方启动.驱动程序JVM将与执行程序(Ex)的SparK Master联系,在独立模式下,Worker将启动Ex.所以Spark Master是每个集群,驱动程序JVM是每个应用程序.

如果Driver节点出现故障,谁负责重新启动应用程序?什么会发生什么?即主节点,Cluster Manager和Workers节点将如何参与(如果它们)以及以何种顺序?

如果Ex JVM崩溃,那么Worker JVM将启动Ex,当Worker JVM发生故障时,Spark Master将启动它们.使用具有集群部署模式的Spark独立集群,您还可以指定--supervise以确保驱动程序在失败且退出代码为非零时自动重新启动.Spark Master将启动驱动程序JVM

与上一个问题类似:如果主节点出现故障,将会发生什么,以及谁负责从故障中恢复?

在master上失败将导致执行程序无法与之通信.所以,他们将停止工作.主人失败将使司机无法与其进行通信以获得工作状态.因此,您的应用程序将失败.正在运行的应用程序将确认主要丢失,但除非两个重要的例外情况,否则这些应该继续或多或少地发挥作用:

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

2.如果Spark Master关闭,Worker将尝试重新注册WithMaster.如果多次失败,工人就会放弃.

reregisterWithMaster() - 重新注册此工作者一直在与之通信的活动主服务器.如果没有,那么这意味着该工作者仍然在引导并且还没有与主服务器建立连接,在这种情况下我们应该重新注册所有主服务器.在故障期间仅重新注册活动主机是很重要的.工作人员无条件地尝试重新注册所有主人,可能会出现竞争条件.SPARK-4592中详述的错误:

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

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有