首页 文章

Spark远程执行到群集失败 - HDFS连接在8020拒绝

提问于
浏览
0

我在从YARN上运行的Spark Cluster外部的机器上提交spark-submit远程作业时遇到问题 .

Exception in thread "main" java.net.ConnectionException: Call from remote.dev.local/192.168.10.65 to target.dev.local:8020 failed on connection exception: java.net.ConnectionException: Connection Refused

在我的core-site.xml中:

<property>
  <name>fs.defaultFS</name>
  <value>hdfs://target.dev.local:8020</value>
<property>

同样在我的集群中的hdfs-site.xml中,我检查了HDFS的权限:

<property>
  <name>dfs.permissions.enabled</name>
  <value>false</value>
<property>

此外,当我从群集外的机器远程登录时:

telnet target.dev.local 8020

我正进入(状态

telnet: connect to address 192.168.10.186: Connection Refused

但是,当我

telnet target.dev.local 9000

它说 Connected .

当我 ping target.dev.local 它的工作原理 .

来自远程机器的我的spark-submit脚本是:

export HADOOP_CONF_DIR=/<path_to_conf_dir_copied_from_cluster>/

spark-submit --class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
--driver-memory 5g \
--executor-memory 50g \
--executor-cores 5 \
--queue default \
<path to jar>.jar \
10

我在这里错过了什么?

1 回答

  • 0

    事实证明我必须改变

    <property>
      <name>fs.defaultFS</name>
      <value>hdfs://target.dev.local:8020</value>
    <property>
    

    <property>
      <name>fs.defaultFS</name>
      <value>hdfs://0.0.0.0:8020</value>
    <property>
    

    允许连接形成外部,因为target.dev.local位于专用网络交换机中 .

相关问题