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
  1. Namenodeがポート8020でリッスンしていることを確認してください。次のコマンドで確認できます。

    hadoop fs -ls hdfs://namenode(ip):8020
    
  2. このチェックが失敗した場合は、vim HADOOP_HOME/conf/core-site.xmlのこのエントリにnamenodeポートを入力して確認してくださいfs.default.name

  3. Javaコードを変更します。

    String uri = "hdfs://192.168.171.128:portOfNameNode/user";
    
于 2012-03-12T14:18:05.037 に答える
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 に答える