【发布时间】:2017-05-15 09:09:59
【问题描述】:
我有一个 Spark 驱动程序以客户端模式提交到 Mesos 集群(具有高可用性 Mesos 主节点)(请参阅 this 了解 client 部署模式)。
我也想在 HA 模式下运行 Spark 驱动程序。怎么样?
我可以为此实现我自己的实现,但现在正在寻找任何可用的东西。
【问题讨论】:
标签: apache-spark spark-streaming mesos
我有一个 Spark 驱动程序以客户端模式提交到 Mesos 集群(具有高可用性 Mesos 主节点)(请参阅 this 了解 client 部署模式)。
我也想在 HA 模式下运行 Spark 驱动程序。怎么样?
我可以为此实现我自己的实现,但现在正在寻找任何可用的东西。
【问题讨论】:
标签: apache-spark spark-streaming mesos
tl;dr 使用 cluster 部署模式和 --supervise,例如spark-submit --deploy-mode cluster --supervise
在client 模式下拥有 Spark 驱动程序的 HA 是不可能的,因为 described in the cited document:
在客户端模式下,Spark Mesos 框架直接在客户端机器上启动并等待驱动输出。
您必须以某种方式监视客户端计算机上的进程并检查其退出代码。
一个更安全的解决方案是让 Mesos 完成它的工作。您应该使用 cluster 部署模式,它是 Mesos 以确保驱动程序运行(并在出现故障时重新启动)。见Cluster mode部分:
Mesos 上的 Spark 还支持集群模式,即在集群中启动驱动程序,客户端可以从 Mesos Web UI 中找到驱动程序的结果。
【讨论】: