2015-05-21 104 views
0

這是我的程序,我想從我的hdfs讀取,我使用map reduce程序創建,但它不顯示任何輸出。沒有任何編譯時和運行時錯誤。嘗試從Hdfs輸出讀取hadoop

import java.io.BufferedReader; 
import java.io.InputStreamReader; 
import org.apache.hadoop.conf.Configuration; 
import org.apache.hadoop.fs.FileSystem; 
import org.apache.hadoop.fs.Path; 

    public class Cat{ 
     public static void main (String [] args) throws Exception{ 
      try{ 
       Path pt=new Path("hdfs:/path/to/file"); 
       FileSystem fs = FileSystem.get(new Configuration()); 
       BufferedReader br=new BufferedReader(new InputStreamReader(fs.open(pt))); 
       String line; 
       line=br.readLine(); 
       while (line != null){ 
        System.out.println(line); 
        line=br.readLine(); 
       } 
      }catch(Exception e){ 
      } 
     } 
    } 
+0

用戶是否試圖執行Java代碼'擁有'HDFS'中的輸出文件'? –

回答

0

幾點需要注意:

1)您是否使用了正確的路徑HDFS?

如果您在本地機器上使用cloudera,應該給出如下所示的路徑。

Path pt=new Path("hdfs://localhost.localdomain:8020/user/cloudera/myfile.txt"); 

檢查覈心site.xml中的 「fs.defaultFS」 屬性來獲取文件系統路徑(即HDFS://something.something:端口/)

2)如何您正在執行的碼? 嘗試創建一個罐子,使用下面的命令

$ hadoop jar /home/cloudera/your/path/to/jar/myjar.jar com.test.Myjar 

試試上面的東西從CLI運行它,並讓我們知道是否可行。

HTH

+0

我的路徑是我的其他Map and Reduce hadoop程序的輸出。 – dilshad

1

我不能評論,所以我會發表一個答案。

處理該異常可能會有幫助。你在捕捉什麼?