问题 如何使用Zookeeper为HA设置Spark?


我想配置 Apache火花 掌握连接 动物园管理员

我已经安装了它们并运行Zookeeper。

spark-env.sh,我添加2行:

-Dspark.deploy.recoveryMode=ZOOKEEPER

-Dspark.deploy.zookeeper.url=localhost:2181

但是当我开始 Apache火花 同 ./sbin/start-all.sh

它显示错误

/home/deploy/spark-1.0.0/sbin/../conf/spark-env.sh: line 46: -Dspark.deploy.recoveryMode=ZOOKEEPER: command not found

/home/deploy/spark-1.0.0/sbin/../conf/spark-env.sh: line 47: -Dspark.deploy.zookeeper.url=localhost:2181: command not found

我想知道如何在spark-env.sh上添加Zookeeper设置


11322
2018-06-12 12:03


起源

看起来你没有将它们添加到run命令中,而是作为单独的行添加。 Bash将它们解释为命令。 - maasg
@maasg:我没有将它们添加到run命令中。我想我可以添加到spark-env.sh来使用./sbin/start-all.sh - Ha Pham
你能发布完整的文件吗? - maasg


答案:


很可能你已经将这些行直接添加到文件中,如下所示:

export SPARK_PREFIX=`dirname "$this"`/..
export SPARK_CONF_DIR="$SPARK_HOME/conf"
...
-Dspark.deploy.recoveryMode=ZOOKEEPER
-Dspark.deploy.zookeeper.url=localhost:2181

当start-all.sh调用时,bash会抱怨那些 -Dspark... 不是有效的命令。注意 spark_config.sh 是一个bash脚本,应该包含有效的bash表达式。

按照配置指南进行操作 高可用性,你应该设置 SPARK_DAEMON_JAVA_OPTS 有以下选项: spark.deploy.recoveryModespark.deploy.zookeeper.url,和 spark.deploy.zookeeper.dir

使用您的数据,您需要添加一行 spark-conf.sh 像这样:

export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=localhost:2181"

12
2018-06-12 17:46





尝试在spark_env.sh中添加以下行

export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=ZK1:2181,ZK2:2181,ZK3:2181 -Dspark.deploy.zookeeper.dir=/sparkha"

请用您的ZK仲裁主机和端口替换ZK1,ZK2和ZK3 而这里/ sparkha是ZK中用于spark的数据存储,默认情况下它将是/ spark 刚刚测试过,它对我们有用。 HTH


1
2017-09-15 08:47