HDFS的接口(命令行接口和Java接口)--笔记

HDFS 文件的系统访问的接口
1.Hadoop的shell命令脚本


hadoop fs -ls   列出某一个目录下的文件
hadoop fs -lsr 递归的方式列出所有文件


hadoop fs -mkdir 创建目录


hadoop fs -rm   删除文件或者目录
hadoop fs -rmr  删除目录及目录下的所有目录或者文件


hadoop fs -put src /  向hdfs上传文件
hadoop fs -copyFromLocal /src / 


hadoop fs -get /hdfs
hadoop fs -copyToLocal  从hdfs拷贝到本地文件系统


2.hdfs第二种访问接口 Java接口 JavaAPI



1) 通过URL的方式去访问
static{
URL.setFsUrlStreamHandler(new FSUrlStreamHandlerFactory());
}


 try{
  //使得URL具备访问HDFS的工厂能力
 
 //通过URL统一资源定位符,具体的定位到hdfs的某一个具体的资源文件上
  URL url = new URL("hdfs://master:9000/a.txt");
  //通过url的 openStream方法拿到目标hdfs上文件的输入流对象
  FSDataInputStream in = url.openStream();
  FileOutputStream foo = new FileOutputStream("/home/zkpk/a.txt");
  IOUtils.copyBytes(in, foo, 4096, false);
 }catch(Exception e){
 
 }finally{
IOUtils.closeStream(in);
 }


2) FileSystem 来操作hdfs(常用)




Object obj = FileSystem.get()
Object extends FileSystem{

}


Object obj = new Object();
FileSystem fs; 
fs = obj; //把子类对象看成父类对象,向上转型




 //获取hdfs的配置 configuration
 Configuration conf = new Configuration();
 FileSystem fs = FileSystem.get(conf);
           fs = FileSystem.get(URI.create(uri), conf);


  InputStream in = fs.openStream();


  IOUtils.copyBytes(in, System.out, 4096, false);


3) FileStatus (文件的元信息, 文件的名字,路径 is目录......)
  


  FileStatu[] list = fs.listStatus();


  Path[] paths = FileUtils.status2path(list)


  for(Path p : paths){
fs = FileSystem.get(RUI.create(p), conf);
fs.openStream();
  }


4)fs.delete
   fs.mkdir()

















  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值