如何在没有ConnectionRefused异常的本地(独立)模式下运行Hadoop?

时间:2015-07-29 15:21:14

标签: java hadoop connection

在“Hadoop:设置单节点群集”教程(https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html#YARN_on_Single_Node)之后,我尝试在本地(独立)模式下运行Hadoop,但我收到了ConnectionRefused异常。当我尝试运行此命令时:

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep input output 'dfs[a-z.]+'

我收到以下消息:

java.net.ConnectException: Call From 4295i/127.0.1.1 to localhost:9000 failed on connection exception: java.net.ConnectException: Connection refused;

此后会出现一个长堆栈跟踪,以及指向http://wiki.apache.org/hadoop/ConnectionRefused的链接。 我应该如何避免此异常?

或者,如何执行以下3个步骤?(它们是上述链接中的指令选项)

  1. 检查客户端使用的主机名是否正确。

  2. 检查客户端尝试与之通话的IP地址是否正确。

  3. 确保异常中的目标地址不是0.0.0.0 - 这意味着您实际上没有为客户端配置真实地址。

  4. 这是我在core-site.xml中的配置:

    <configuration>    
      <property>    
        <name>fs.defaultFS</name>    
        <value>hdfs://localhost:9000</value>    
      </property>    
    </configuration>
    

    这是我在hdfs-site.xml中的配置:

    <configuration>
      <property>
        <name>dfs.name.dir</name>    
        <value>/home/USERNAME/pseudo/dfs/name</value>    
      </property>    
      <property>    
        <name>dfs.data.dir</name>    
        <value>/home/USERNAME/pseudo/dfs/data</value>    
      </property>    
      <property>    
        <name>dfs.replication</name>    
        <value>1</value>    
      </property>    
    </configuration>
    

    我对mapred-site.xml.template和yarn-site.xml的配置为空。

1 个答案:

答案 0 :(得分:1)

我发现配置存在一些问题。您提到的用于存储namenode和datanode数据的路径不是绝对的。它应该以斜杠(/)开头。我做了更改,下面给出了更新的配置。 另一个建议是将这个目录保存在用户主目录之外。

<configuration>

<property>

<name>dfs.name.dir</name>

<value>/home/USERNAME/pseudo/dfs/name</value>

</property>

<property>

<name>dfs.data.dir</name>

<value>/home/USERNAME/pseudo/dfs/data</value>

</property>