Как настроить Spark с Zookeeper для HA?
Я хочу настроить Apache spark master для подключения к Zookeeper
Я установил их оба и запустил 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
Я хочу знать, как добавить настройки Zookeeper на spark-env.sh
Ответы
Ответ 1
Скорее всего, вы добавили эти строки непосредственно в файл следующим образом:
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.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"
Ответ 2
Попробуйте добавить строку ниже в 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"
Пожалуйста, замените ZK1, ZK2 и ZK3 на хосты и порт кворума ZK, и здесь /sparkha - это хранилище данных в ZK для искры, bu по умолчанию это будет /spark. Только что протестировано, оно сработало для нас. НТН