hdfs java接口_熟练掌握HDFS的Java API接口访问

HDFS设计的主要目的是对海量数据进行存储,也就是说在其上能够存储很大量文件(可以存储TB级的文件)。HDFS将这些文件分割之后,存储在不同的DataNode上, HDFS 提供了两种访问接口:Shell接口和Java API 接口,对HDFS里面的文件进行操作,具体每个Block放在哪台DataNode上面,对于开发者来说是透明的。

通过Java API接口对HDFS进行操作,我将其整理成工具类,地址见底部

1、获取文件系统

1 /**

2 * 获取文件系统3 *4 *@returnFileSystem5 */

6 public staticFileSystem getFileSystem() {7 //读取配置文件

8 Configuration conf = newConfiguration();9 //文件系统

10 FileSystem fs = null;11

12 String hdfsUri =HDFSUri;13 if(StringUtils.isBlank(hdfsUri)){14 //返回默认文件系统 如果在 Hadoop集群下运行,使用此种方法可直接获取默认文件系统

15 try{16 fs =FileSystem.get(conf);17 } catch(IOException e) {18 logger.error("", e);19 }20 }else{21 //返回指定的文件系统,如果在本地测试,需要使用此种方法获取文件系统

22 try{23 URI uri = newURI(hdfsUri.trim());24 fs =FileSystem.get(uri,conf);25 } catch (URISyntaxException |IOException e) {26 logger.error("", e);27 }28 }29

30 returnfs;31 }

2、创建文件目录

1 /**

2 * 创建文件目录3 *4 *@parampath5 */

6 public static voidmkdir(String path) {7 try{8 //获取文件系统

9 FileSystem fs =getFileSystem();10

11 String hdfsUri =HDFSUri;12 if(StringUtils.isNotBlank(hdfsUri)){13 path = hdfsUri +path;14 }15

16 //创建目录

17 fs.mkdirs(newPath(path));18

19 //释放资源

20 fs.close();21 } catch (IllegalArgumentException |IOException e) {22 logger.error("", e);23 }24 }

3、

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值