我想配置 Apache spark 主服务器以连接 Zookeeper
我已经安装了它们并运行Zookeeper。
在 spark-env.sh 中,我添加了2行:
-Dspark.deploy.recoveryMode=ZOOKEEPER
-Dspark.deploy.zookeeper.url=localhost:2181
但是当我用 ./ sbin / start-all.sh
启动 Apache spark 时显示错误
/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设置答案 0 :(得分:12)
很可能您已将这些行直接添加到文件中,如下所示:
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表达式。
按照High Availability上的配置指南,您应该为SPARK_DAEMON_JAVA_OPTS
设置以下选项:spark.deploy.recoveryMode
,spark.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"
答案 1 :(得分:1)
尝试在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