我在没有公共DNS的机器集群上安装了spark(刚刚在云上创建了机器)。 Hadoop看起来安装和正常工作,但是Sparks在7077和6066上侦听127.0.0.1而不是公共IP,因此工作节点无法连接到它。
有什么问题?
主节点上的/ etc / hosts类似于:
127.0.1.1 namenode namenode
127.0.0.1 localhost
XX.XX.XX.XX namenode-public
YY.YY.YY.YY hadoop-2
ZZ.ZZ.ZZ.ZZ hadoop-1
我的$ SPARK_HOME / conf / spark-env.sh看起来像是:
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export SPARK_PUBLIC_DNS=namenode-public
export SPARK_WORKER_CORES=6
export SPARK_LOCAL_IP=XX.XX.XX.XX
sudo netstat -pan | grep 7077
tcp 0 0 127.0.1.1:7077 0.0.0.0:* LISTEN 6670/java
答案 0 :(得分:1)
您应在SPARK_MASTER_HOST
中指定spark-env.sh
(它必须是从属节点可见的机器地址)。此外,您可能需要在iptables中为端口7077和6066添加规则。