读完这个问题,我想问更多的问题:
群集管理器是一个长期运行的服务,它在哪个节点上运行?
主节点和驱动节点是否可能是同一台机器?我想在某个地方应该有一条规则,规定这两个节点应该是不同的?
如果驱动程序节点出现故障,谁负责重新启动应用程序?到底会发生什么?i、 e.主节点、集群管理器和工作节点将如何参与(如果参与),以及按什么顺序参与?
与上一个问题类似:如果主节点发生故障,会发生什么,谁负责从故障中恢复?
读完这个问题,我想问更多的问题:
群集管理器是一个长期运行的服务,它在哪个节点上运行?
主节点和驱动节点是否可能是同一台机器?我想在某个地方应该有一条规则,规定这两个节点应该是不同的?
如果驱动程序节点出现故障,谁负责重新启动应用程序?到底会发生什么?i、 e.主节点、集群管理器和工作节点将如何参与(如果参与),以及按什么顺序参与?
与上一个问题类似:如果主节点发生故障,会发生什么,谁负责从故障中恢复?
2条答案
按热度按时间irtuqstp1#
群集管理器是一个长期运行的服务,它在哪个节点上运行?
集群管理器只是一个资源管理器,即CPU和ram,schedulerbackends用来启动任务。集群管理器不再对apachespark做什么,而是提供资源,一旦spark执行器启动,它们就直接与驱动程序通信以运行任务。
可以通过执行以下操作启动独立主服务器:
可以从任何地方开始。
在spark群集上运行应用程序
主节点和驱动节点是否可能是同一台机器?我想在某个地方应该有一条规则,规定这两个节点应该是不同的?
在独立模式下,当您启动机器时,某些jvm将启动。您的spark主机将启动,并且在每个机器上工作jvm将启动,它们将向spark主机注册。两者都是资源管理器。当您启动应用程序或以集群模式提交应用程序时,无论您在哪里执行ssh来启动该应用程序,驱动程序都会启动。驱动程序jvm将与executors(ex)的spark master联系,在独立模式下,worker将启动ex。因此spark master是每个集群的,而驱动程序jvm是每个应用程序的。
如果驱动程序节点出现故障,谁负责重新启动应用程序?到底会发生什么?i、 e.主节点、集群管理器和工作节点将如何参与(如果参与),以及按什么顺序参与?
如果前jvm崩溃,工作jvm将启动前jvm,当工作jvm崩溃时,spark master将启动它们。对于带有cluster deploy模式的spark独立集群,您还可以指定--supervise,以确保驱动程序在失败时自动重新启动,退出代码为非零。spark master将启动驱动程序jvm
与上一个问题类似:如果主节点发生故障,会发生什么,谁负责从故障中恢复?
如果执行失败,执行者将无法与之沟通。所以,他们会停止工作。主控失败将使驱动程序无法与其通信以了解作业状态。因此,您的应用程序将失败。主数据丢失将由运行的应用程序确认,否则这些应用程序将继续或多或少地工作,就像什么都没发生一样,但有两个重要的例外:
1.应用程序无法以优雅的方式完成。
2.如果spark master关闭,工人将尝试重新注册master。如果失败多次,工人们就会放弃。
reregisterwithmaster()--向此辅助进程一直与之通信的活动主机重新注册。如果没有,则表示此工作进程仍在引导,并且尚未与主进程建立连接,在这种情况下,我们应该向所有主进程重新注册。在发生故障时,仅向活动主机重新注册非常重要。工作进程无条件地尝试向所有主机重新注册,可能会出现争用情况。错误详细信息见spark-4592:
此时,长时间运行的应用程序将无法继续处理,但仍不会导致立即失败。相反,应用程序将等待主机恢复联机(文件系统恢复)或来自新领导的联系人(zookeeper模式),如果发生这种情况,它将继续处理。
1aaf6o9v2#
1群集管理器是一个长期运行的服务,它在哪个节点上运行?
群集管理器是spark独立模式下的主进程。它可以从任何地方开始
./sbin/start-master.sh
,在yarn中,它将是资源管理器。2主节点和驱动节点是否可能是同一台机器?我想在某个地方应该有一条规则,规定这两个节点应该是不同的?
Master
是每个群集,并且Driver
是每个应用程序。对于独立/Yarn集群,spark目前支持两种部署模式。在客户机模式下,驱动程序的启动过程与提交应用程序的客户机相同。
但是,在集群模式下,对于单机版,驱动程序从一个worker启动;对于yarn,驱动程序在应用程序主节点内启动,客户端进程在完成提交应用程序的职责后立即退出,而不必等待应用程序完成。
如果申请书与
--deploy-mode client
在主节点中,主节点和驱动节点将位于同一节点上。检查Spark应用在Yarn上的展开情况三。如果驱动程序节点出现故障,谁负责重新启动应用程序?到底会发生什么?i、 e.主节点、集群管理器和工作节点将如何参与(如果参与),以及按什么顺序参与?
如果驱动程序失败,则提交/触发的spark应用程序的所有执行者任务都将被终止。
4在主节点发生故障的情况下,究竟会发生什么,谁负责从故障中恢复?
主节点故障有两种处理方式。
带zookeeper的备用主机:
利用zookeeper提供领导人选举和一些状态存储,您可以在集群中启动连接到同一zookeeper示例的多个主机。其中一人将被选为“领导人”,其他人将保持待命状态。如果当前的领导者死亡,将选择另一个主控器,恢复旧主控器的状态,然后恢复调度。整个恢复过程(从第一个领导者倒下开始)应该需要1到2分钟。请注意,此延迟仅影响调度新应用程序—在主故障切换期间已经运行的应用程序不受影响。检查这里的配置
使用本地文件系统进行单节点恢复:
zookeeper是实现生产级高可用性的最佳方法,但是如果您想在主机宕机时重新启动主机,文件系统模式可以解决这个问题。当应用程序和工作进程注册时,它们将有足够的状态写入提供的目录,以便在重新启动主进程时可以恢复它们。查看此处以了解更多详细信息