【问题标题】:How to use start-all.sh to start standalone Worker that uses different SPARK_HOME (than Master)?如何使用 start-all.sh 启动使用不同 SPARK_HOME(而不是 Master)的独立 Worker?
【发布时间】:2017-05-22 14:23:10
【问题描述】:

我在 2 台机器上安装了 spark 2.1.1,但在不同的相对位置,即在一台机器上我安装在 NTFS 驱动器的某个位置,而在另一台机器上我安装在 ext4 驱动器上.我正在尝试以 独立模式 启动一个集群,其中有 2 个从属设备和一个主控设备,其中一台机器上有 1 个主设备和 1 个从设备,另一台机器上有 1 个从设备。

当我尝试通过主节点上的start-all.sh 脚本启动此集群时,我收到以下错误:-

192.168.1.154: bash: line 0: cd: /home/<somePath>/spark-2.1.1-bin-hadoop2.7: No such file or directory

我在各自的bashrc 文件中设置了正确的SPARK_HOME。下面是我的 slave 文件(在 1 master + 1 slave 机器上)

localhost
192.168.1.154

我可以通过 ssh 远程登录到 1 个从机。我可以在每台机器上单独运行 Spark 集群。

我的理解是,当我尝试通过start-all.sh 脚本从我的主机远程启动从机时,它试图转到主节点上安装 spark 的位置,但在从节点上,spark 安装在不同的位置,它失败了。谁能告诉我如何解决这个问题?

【问题讨论】:

    标签: apache-spark apache-spark-standalone


    【解决方案1】:

    start-all.sh 你可以找到以下内容:

    if [ -z "${SPARK_HOME}" ]; then
      export SPARK_HOME="$(cd "`dirname "$0"`"/..; pwd)"
    fi
    
    # Load the Spark configuration
    . "${SPARK_HOME}/sbin/spark-config.sh"
    
    # Start Master
    "${SPARK_HOME}/sbin"/start-master.sh
    
    # Start Workers
    "${SPARK_HOME}/sbin"/start-slaves.sh
    

    这与独立主机上的 Spark 安装无关。 start-all.sh 只需使用您在全局范围内定义的任何 SPARK_HOME 并在集群中的所有节点上使用它,用于独立的 master 和 worker。

    在您的情况下,我建议编写一个自定义启动脚本,该脚本将根据各自的 SPARK_HOME env vars 启动独立的 Master 和 worker。

    start-slaves.sh(来源here)仅执行以下操作:

    cd "${SPARK_HOME}" \; "${SPARK_HOME}/sbin/start-slave.sh" "spark://$SPARK_MASTER_HOST:$SPARK_MASTER_PORT"
    

    所以没有太多的魔法发生,而是ssh到每个节点并执行命令行。


    认为我什至会为此使用Ansible

    【讨论】:

      【解决方案2】:

      你应该检查你的 ~/.bashr。你可以在下面看到我的 bashrc:

      export JAVA_HOME=/usr/local/java/jdk1.8.0_121
      export JRE_HOME=$JAVA_HOME/jre
      export SCALA_HOME=/usr/local/src/scala/scala-2.12.1
      export SPARK_HOME=/usr/local/spark/2.1.0
      export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin
      

      最后,你必须更新你的 bashrc 环境:

      source ~/.bashrc
      

      【讨论】:

      • 感谢您的回复。但我不认为它与我的问题严格相关。无论如何,两台机器上都正确设置了 SPARK_HOME
      猜你喜欢
      • 2016-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-01
      • 1970-01-01
      • 2014-07-24
      • 1970-01-01
      • 2018-11-29
      相关资源
      最近更新 更多