【问题标题】:Both Spark Master machines are showing status as STANDBY after HA setup两台 Spark Master 机器在 HA 设置后都显示为 STANDBY 状态
【发布时间】:2017-03-25 19:05:55
【问题描述】:

我们正在尝试使用 ZK 设置 Spark HA 设置。 我们有 2 台机器用于 Spark 进程的 Master 和另外 3 台用于 Spark Slaves 的机器 在 spark-env.sh 中完成 Spark HA 的 Master Machine 中的配置如下:

# - SPARK_DAEMON_JAVA_OPTS, to set config properties for all daemons (e.g. "-Dx=y")

export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=DEV-SMP-Manager01:2181DEV-SMP-Worker01:2181,DEV-SMP-Worker05:2181"

其中 DEV-SMP-Manager01:2181DEV-SMP-Worker01:2181,DEV-SMP-Worker05:2181 是 ZK Quorum。他们已经启动并运行。 在下面提到的 spark 配置文件中添加了 curator jar。 当我们使用命令 sbin/start-master.sh 启动 master(s) 时,

它们都以“STANDBY”的形式出现,火花日志中没有错误。在这里我们被卡住了,知道我的 spark-env 出了什么问题,如下所示:-

导出 SPARK_DIST_CLASSPATH=$(/home/hduser/smp/hadoop-2.5.1/bin/hadoop 类路径) 导出 SPARK_DIST_CLASSPATH=$SPARK_DIST_CLASSPATH:/home/hduser/smp/spark-1.6.1-bin-without-hadoop/curator-client-2.0.0-incubating.jar:/home/hduser/smp/spark-1.6.1- bin-without-hadoop/curator-framework-2.2.0-incubating.jar

export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=DEV-SMP-Manager01:2181DEV-SMP-Worker01:2181,DEV-SMP-Worker05:2181" 当我看到两个 web UI 的 machine:8080 时,我们看到 master 的状态 = STANDBY 并且其中任何一个都没有显示任何工作人员。尽管所有工人都已启动并运行。任何线索都会有所帮助。理想情况下,一个主人应该现场展示所有的工人,但这里两个主人都处于待命状态,没有工人为任何主人展示?

使用的版本:- 火花-火花-1.6.1 ZK - 3.4.6

【问题讨论】:

  • 是否将相同的配置复制到运行 master 的两个节点?此外,您是否尝试过首先在两个节点上运行主节点,然后在活动主节点上启动工作节点。请附上两个主界面的快照。
  • 同时检查是否可以从两个主节点访问这些节点 - DEV-SMP-Manager01:2181DEV-SMP-Worker01:2181,DEV-SMP-Worker05:2181

标签: apache-spark apache-zookeeper high-availability


【解决方案1】:

经过一段时间的持续工作,我们已经看到一些更改解决了完整的问题,现在两个 master 工作正常,一个将是 Alive,另一个应该是 Standby,并且在故障转移后,standby 应该是 Alive,并且所有工作人员都处于该状态.

spark-env.sh 文件的变化

export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=DEV-SMP-Manager01:2181,DEV-SMP-Worker01:2181,DEV-SMP-Worker05:2181 -Dspark.deploy.zookeeper.dir=/sparkha"

Dspark.deploy.zookeeper.dir 在 ZK 数据存储中存储 spark HA 的位置,默认情况下它将是 /spark 在 ZK 中,但我们希望是可配置的。

第二件事是 ZK Leader 选举 Spark 所需的 curator 罐子。所以我们添加了 e env veritable 并且我们在 SPARK_DIST_CLASSPATH 中附加了作为已经存在的“hadoop”二进制文件的显式路径,我们只是添加了新创建的 env。

那么 Quorum 必须正确配置,没有任何 "" 像上面的 url=a1:2181,a2:2181

之后,由 start-slaves.sh 开始一个一个的 master 然后从属,一切都到位了。感谢所有研究过这个问题的人。希望这会是其他一些人。现在我们可以在 HA 设置中帮助其他人。

【讨论】:

    猜你喜欢
    • 2017-02-17
    • 1970-01-01
    • 2014-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 2021-10-21
    • 1970-01-01
    相关资源
    最近更新 更多