阅读完这个问题后,我想提出更多问题:
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. 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和更多细节
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模式),如果发生这种情况,它将继续处理.