Spark 作业服务器高可用
Spark Jobserver High Available
我有一个节点很少的独立 Spark 集群。我能够通过 zookeeper 获得高可用性。我正在使用 Spark Jobserver spark-2.0-preview,我已经使用可用的 spark URL 配置了 jobserver env1.conf
文件,如下所示:
spark://<master1>:<port>,<master2>:<port>
一切正常,所以如果 master1 宕机,jobserver 会连接到 master2。
- 但是如果安装jobserver的机器崩溃了怎么办?
- 有没有办法像我用 spark 做的那样?在 2 台机器和 zookeeper 上有 2 个 jobserver 实例,以便在一个失败时进行管理。
- 还是我需要自己处理这种情况?
我会选择第三种解决方案。我用过一次 Spark Jobserver,不是在 HA 中,但我当时正在寻找解决方案。说说我的看法吧:
- 如果 Spark Jobserver 只部署在一台机器上,默认情况下它是一个故障点,以防机器崩溃。
- Spark Jobserver 没有使用 Zookeeper 来协调节点(至少在我使用它的那一刻),而是使用 Akka 框架中实现的 actor 模型。
- 我认为最好的办法是自己处理。这里的方法可能是:简单的方法是在指向同一个数据库的不同机器上启动多个 Spark Jobserer 实例,并在它们前面有一个代理。现在问题将移动数据库服务器的HA(可能更容易解决)
我建议检查 Spark Jobserver github 存储库,因为他们对此进行了讨论。 (https://github.com/spark-jobserver/spark-jobserver/issues/42)
我有一个节点很少的独立 Spark 集群。我能够通过 zookeeper 获得高可用性。我正在使用 Spark Jobserver spark-2.0-preview,我已经使用可用的 spark URL 配置了 jobserver env1.conf
文件,如下所示:
spark://<master1>:<port>,<master2>:<port>
一切正常,所以如果 master1 宕机,jobserver 会连接到 master2。
- 但是如果安装jobserver的机器崩溃了怎么办?
- 有没有办法像我用 spark 做的那样?在 2 台机器和 zookeeper 上有 2 个 jobserver 实例,以便在一个失败时进行管理。
- 还是我需要自己处理这种情况?
我会选择第三种解决方案。我用过一次 Spark Jobserver,不是在 HA 中,但我当时正在寻找解决方案。说说我的看法吧:
- 如果 Spark Jobserver 只部署在一台机器上,默认情况下它是一个故障点,以防机器崩溃。
- Spark Jobserver 没有使用 Zookeeper 来协调节点(至少在我使用它的那一刻),而是使用 Akka 框架中实现的 actor 模型。
- 我认为最好的办法是自己处理。这里的方法可能是:简单的方法是在指向同一个数据库的不同机器上启动多个 Spark Jobserer 实例,并在它们前面有一个代理。现在问题将移动数据库服务器的HA(可能更容易解决)
我建议检查 Spark Jobserver github 存储库,因为他们对此进行了讨论。 (https://github.com/spark-jobserver/spark-jobserver/issues/42)