gpt4 book ai didi

apache-spark - 如何使 Spark 驱动程序对 Master 重启具有弹性?

转载 作者:行者123 更新时间:2023-12-04 12:29:00 25 4
gpt4 key购买 nike

我有一个 Spark Standalone(不是 YARN/Mesos)集群和一个正在运行的驱动程序应用程序(在客户端模式下),它与该集群通信以执行其任务。但是,如果我关闭并重新启动 Spark master 和 worker,驱动程序不会重新连接到 master 并恢复其工作。

也许我对 Spark Master 和驱动程序之间的关系感到困惑。在这种情况下,Master是否负责重新连接回驱动程序?如果是这样,Master 是否将其当前状态序列化到磁盘的某个地方,它可以在重新启动时恢复?

最佳答案

In a situation like this, is the Master responsible for reconnecting back to the driver? If so, does the Master serialize its current state to disk somewhere that it can restore on restart?



主节点和驱动程序之间的关系取决于几个因素。首先,驱动程序是托管您的 SparkContext 的驱动程序。/ StreamingContext并负责作业执行。它创建了 DAG,并持有 DAGSchedulerTaskScheduler分别分配阶段/任务。如果您使用 Spark Standalone 并在“客户端模式”下运行您的作业,则主节点可以作为驱动程序的主机。这样,Master 还托管驱动程序进程,如果它死了,驱动程序也会像它一样死掉。如果使用“集群模式”,驱动程序驻留在其中一个 Worker 节点上,并经常与 Master 通信以获取当前正在运行的作业的状态,发回有关已完成批次状态的元数据等。

在 Standalone 上运行,如果 Master 死掉并且你重新启动它,Master 不会重新执行之前运行的作业。为了实现这一点,您可以创建并为集群提供一个额外的 Master 节点,并设置它以便 ZooKeeper 可以保持 Masters 状态,并在发生故障时在两者之间进行交换。当您以这种方式设置集群时,Master 知道它之前执行的作业并代表您恢复它们,新的 Master 已带头。

您可以阅读如何创建备用 Spark Master 节点 in the documentation .

关于apache-spark - 如何使 Spark 驱动程序对 Master 重启具有弹性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40025371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com