Подключение к Cloudera VM с моего рабочего стола - PullRequest
4 голосов
/ 09 августа 2011

Я скачал виртуальную машину Cloudera на свой ноутбук с Windows 7, чтобы поиграть.Я пытаюсь подключиться к экземпляру Hadoop, запущенному на виртуальной машине из Windows.Я сделал ifconfig и получил IP-адрес виртуальной машины.Я могу подключаться к веб-интерфейсам, работающим на виртуальной машине, из Firefox, работающим на моем компьютере с Windows, поэтому я знаю, что могу подключиться по крайней мере к этому.

Итак, я попытался подключиться к Hadoop из Java.

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).

Может кто-нибудь помочь мнеиз?

Ответы [ 2 ]

2 голосов
/ 12 марта 2012
  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";
    
2 голосов
/ 21 октября 2011

Сначала попробуйте подключиться через 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, или hasoop не работает, или ваши порты заблокированы ... и т.д ...

...