准备工作: 1.导入所需要的jar包(最好把hadoop的jar包全部导入) 2.把集群的hdfs-site.xml和core-site.xml文件复制到src目录下 代码:
package com.peng.hdfs; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IOUtils; //别忘了导入所需要的jar包,最好hadoop的包全部导入 //通过 HDFS 的 API 访问文件系 public class HDFSCatWithAPI { public static void main(String[] args) { //制定Configuration Configuration conf=new Configuration(); //定义一个DataInputStram FSDataInputStream in=null; try { //得到文件系统的实例 FileSystem fs=FileSystem.get(conf); //通过FileSystem的open方法打开一个指定的文件(注意这个前缀与core-site.xm中fs.defaultFS的value值相同 //加了端口号会出现错误 in=fs.open(new Path("hdfs://mycluster/output/weibo1/part-r-00003")); //将InputStream中的内容通过IOUtils的copyBytes方法复制到System.out中 IOUtils.copyBytes(in, System.out, 4096,false); //seek到position 1 in.seek(1); //执行一边复制一边输出工作 IOUtils.copyBytes(in, System.out, 4096,false); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ IOUtils.closeStream(in); } } }结果: