4

我在我的 Windows 7 笔记本电脑上下载了 Cloudera VM 来玩。我正在尝试从 Windows 连接到在 VM 中运行的 Hadoop 实例。我做了一个 ifconfig 并获得了 VM 的 IP 地址。我可以从我的 Windows 机器上运行的 Firefox 连接到 VM 中运行的 Web 界面,所以我知道我至少可以连接到那个。

所以接下来,我尝试从 Java 连接到 Hadoop。

public class FileSystemWriter
{

static
        {
                URL.setURLStreamHandlerFactory( new FsUrlStreamHandlerFactory() );
        }

        public static void main( String[] args ) throws Exception
        {
                String uri = "hdfs://192.168.171.128/user";
                Configuration conf = new Configuration();

                System.out.println( "uri: " + uri );

                FileSystem fs = FileSystem.get( URI.create( uri ), conf );
       }

} 

但我得到错误。

uri:hdfs://192.168.171.128/user

Aug 9, 2011 8:29:26 AM org.apache.hadoop.ipc.Client$Connection
handleConnectionFailure
INFO: Retrying connect to server: /192.168.171.128:8020. Already tried
0 time(s).
Aug 9, 2011 8:29:28 AM org.apache.hadoop.ipc.Client$Connection
handleConnectionFailure
INFO: Retrying connect to server: /192.168.171.128:8020. Already tried
1 time(s).
Aug 9, 2011 8:29:30 AM org.apache.hadoop.ipc.Client$Connection
handleConnectionFailure
INFO: Retrying connect to server: /192.168.171.128:8020. Already tried
2 time(s).

谁能帮我吗?

4

2 回答 2

2

首先,尝试通过 hftp 连接。

        uri = "hftp://172.16.xxx.xxx:50070/";

        System.out.println( "uri: " + uri );           
        Configuration conf = new Configuration();

        FileSystem fs = FileSystem.get( URI.create( uri ), conf );
        fs.printStatistics();

如果您看到某些东西(没有例外),那么您已连接。

如果你不这样做,那么你的问题不是 HDFS,而是你的问题是你的 ip 错误,或者 hadoop 没有运行,或者你的端口被阻止......等等......

于 2011-10-21T02:48:09.863 回答
2
  1. 确保您的 Namenode 正在侦听端口 8020。您可以使用以下命令进行检查:

    hadoop fs -ls hdfs://namenode(ip):8020
    
  2. 如果此检查失败,vim HADOOP_HOME/conf/core-site.xml请在fs.default.name.

  3. 更改您的 java 代码:

    String uri = "hdfs://192.168.171.128:portOfNameNode/user";
    
于 2012-03-12T14:18:05.037 回答