Hadoop 服务 运行。但是它说无法连接

Hadoop services are running. But it says fails to connect

  package org.myorg;

  import java.security.PrivilegedExceptionAction;

  import org.apache.hadoop.conf.*;
  import org.apache.hadoop.security.UserGroupInformation;
  import org.apache.hadoop.fs.Path;
  import org.apache.hadoop.fs.FileSystem;
  import org.apache.hadoop.fs.FileStatus;

  public class Write{

    public static void main(String args[]) {
           try {
                // UserGroupInformation ugi = UserGroupInformation.createRemoteUser("hbase");

                 UserGroupInformation ugi = UserGroupInformation.getLoginUser();

                 ugi.doAs(new PrivilegedExceptionAction<Void>() {
                     public Void run() throws Exception
                     {
                         Configuration conf = new Configuration();
                         conf.set("fs.default.name", "hdfs://10.72.40.XX:8020/user/hbase");

                        //conf.set("hadoop.job.ugi", "hbase");

                         conf.set("hadoop.job.ugi", "root");
                         FileSystem fs = FileSystem.get(conf);

                         fs.createNewFile(new Path("/user/hbase/test"));

                         System.out.println("File Created");
                        return null;
                     }
                 });
               }
          catch(Exception e)
         {
            e.printStackTrace();
         }

 }
}

这是我的 java 文件。

我的ip是10.72.40.XX

  hostname -i

给我这个ip。

 jps

 Jobtracker, namenode, datanode, tasktracker, secondarynamenode, jps

是运行.

我使用

编译了这个java程序
 javac -classpath hadoop-core-1.1.2.jar -d Write/ Write.java

使用

创建了 jar
 jar -cvf Write.jar -C Write/ .

运行这个程序使用

 hadoop-1.2.1/bin/hadoop jar Write.jar org.myorg.Write

它说,

 Retrying 0-9 [10] times

  failed on connection exception: java.net.ConnectException: Connection refused

然后我检查了是否有东西在端口 8020 监听

 netstat -plten | grep java

 tcp        0      0 ::ffff:127.0.0.1:8020       :::*                        LISTEN      0          55639      15717/java

returns 服务正在侦听端口 8020。

然后为了调试,我把ip换成了localhost,成功了。可能是什么问题?

我该如何解决?

同一台机器的ip和localhost是否不同?

netstat 输出表明它只在本地主机上侦听(::ffff:127.0.0.1:8020 是本地主机上的端口 8020)。您可以编辑您的服务配置,其中必须有一个用于它所侦听的 interface/IP 的条目。在那里,您可以将 localhost/127.0.0.1 更改为外部 IP。对于许多服务,您可以使用 0.0.0.0 来指示它应该监听所有服务。