2011-08-09 53 views
4

我在Windows 7筆記本電腦上下載了Cloudera VM以便玩耍。我試圖從 Windows連接到在VM中運行的Hadoop實例。我做了一個ifconfig並獲得了虛擬機的IP地址。我可以 連接到運行在我的Windows機器上的Firefox的虛擬機上運行的 的Web界面,所以我知道我至少可以連接到那個。從我的桌面連接到Cloudera VM

接下來,我嘗試從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). 

誰能幫助我嗎?

+0

我也對OS X完全相同的問題!我被困了一段時間。我發佈了這個在cloudera getsatisfaction網絡論壇....去那裏,投票吧! http://getsatisfaction.com/cloudera/topics/_amateur_question_external_connection_to_the_cloudera_vm – jayunit100

回答

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是沒有運行,或您的端口被封鎖...等...

+1

其與hftp一起工作,但無法通過hdfs使其工作。你能提出一個理由嗎? –

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";