第二种方式读取并显示HDFS中的内容详解大数据

1.讀取HDFS内容的java客戶端代碼:
第二种方式读取并显示HDFS中的内容详解大数据

 1 package Hdfs; 
 2  
 3 import java.io.InputStream; 
 4 import java.net.URI; 
 5  
 6 import org.apache.hadoop.conf.Configuration; 
 7 import org.apache.hadoop.fs.FileSystem; 
 8 import org.apache.hadoop.fs.Path; 
 9 import org.apache.hadoop.io.IOUtils; 
10 /** 
11  * FileSystem类的实例是通过工厂方法,其中Configuration对象封装了HDFS客户端或者HDFS集群的配置 
12  * 该方法通过给定的URI方案和权限确定使用的文件系统。得到FileSystem实例之后,调用open()函数 
13  * 获得文件的输入流,open方法返回FSDataInputStream对象 
14  * @param args 
15  * @throws Exception 
16  */ 
17 public class FilesystemCat { 
18     public static void main(String[] args) throws Exception { 
19         String url = "hdfs://neusoft-master:9000/user/root/test/demo1"; 
20         Configuration conf = new Configuration(); 
21         FileSystem fs = FileSystem.get(URI.create(url), conf); 
22         InputStream in = null; 
23         try { 
24             in = fs.open(new Path(url)); 
25             IOUtils.copyBytes(in, System.out, 4096, false); 
26         } catch (Exception e) { 
27             IOUtils.closeStream(in); 
28         } 
29     } 
30 }

FileSystem方式讀取HDFS内容

2.將上述代碼打成har包傳輸到linux中運行,結果如下。

第二种方式读取并显示HDFS中的内容详解大数据

 

總結:

    访问hdfs的两种方式各有不同:首先利用Java.net.URL对象打开数据流。第二种方法是利用FileSystem方法的get方法完成配置,利用IOUtils的copyBytes方法读取数据。

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/8932.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论