【问题标题】:How to set up Spark with Zookeeper for HA?如何使用 Zookeeper 为 HA 设置 Spark?
【发布时间】:2014-08-02 17:58:38
【问题描述】:

我想配置 Apache spark master 以连接 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 设置

【问题讨论】:

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

标签: apache-spark apache-zookeeper


【解决方案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 表达式。

按照High Availability 的配置指南,您应该使用以下选项设置SPARK_DAEMON_JAVA_OPTSspark.deploy.recoveryModespark.deploy.zookeeper.urlspark.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 中 spark 的数据存储,默认为 /spark 刚刚测试过,它对我们有用。 高温

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-19
      • 1970-01-01
      • 1970-01-01
      • 2020-07-05
      相关资源
      最近更新 更多