2015-05-21 108 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

我不能评论,所以我会发表一个答案。

处理该异常可能会有帮助。你在捕捉什么?