java如何使用IO流的方式实现hdfs数据的上传和下载
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章给大家分享的是有关java如何使用IO流的方式实现hdfs数据的上传和下载的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。IO操作-文件上传1、把本地d盘下的hell
千家信息网最后更新 2026年10月31日java如何使用IO流的方式实现hdfs数据的上传和下载
这篇文章给大家分享的是有关java如何使用IO流的方式实现hdfs数据的上传和下载的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
IO操作-文件上传
1、把本地d盘下的hello.txt文件上传到HDFS根目录
2、代码编写
@Test public void putFileToHDFS() throws IOException, InterruptedException, URISyntaxException { // 1 获取文件系统 Configuration configuration = new Configuration(); FileSystem fs = FileSystem.get(new URI("hdfs://hadoop100:9000"), configuration, "root"); // 2 创建输入流 FileInputStream fis = new FileInputStream(new File("d:/hello.txt")); // 3 获取输出流 FSDataOutputStream fos = fs.create(new Path("/hello.txt")); // 4 流对拷 IOUtils.copyBytes(fis, fos, configuration); // 5 关闭资源 IOUtils.closeStream(fos); IOUtils.closeStream(fis); fs.close(); }3、浏览器输入http://hadoop100:50070/explorer.html#/查看是否上传
IO操作-文件下载
1、从HDFS下载hello.txt文件到d盘根目录下
2、代码编写
@Test public void getFileFromHDFS() throws IOException, InterruptedException, URISyntaxException { // 1 获取文件系统 Configuration configuration = new Configuration(); FileSystem fs = FileSystem.get(new URI("hdfs://hadoop100:9000"), configuration, "root"); // 2 获取输入流 FSDataInputStream fis = fs.open(new Path("/hello.txt")); // 3 获取输出流 FileOutputStream fos = new FileOutputStream(new File("d:/hello.txt")); // 4 流的对拷 IOUtils.copyBytes(fis, fos, configuration); // 5 关闭资源 IOUtils.closeStream(fos); IOUtils.closeStream(fis); fs.close(); }3、查看目录下是否有文件
IO操作-分块读取
1、分块读取HDFS上的大文件,比如根目录下的/hadoop-2.7.2.tar.gz
2、下载第一块,代码如下
@Testpublic void readFileSeek1() throws IOException, InterruptedException, URISyntaxException{// 1 获取文件系统Configuration configuration = new Configuration();FileSystem fs = FileSystem.get(new URI("hdfs://hadoop100:9000"), configuration, "root");// 2 获取输入流FSDataInputStream fis = fs.open(new Path("/hadoop-2.7.2.tar.gz"));// 3 创建输出流FileOutputStream fos = new FileOutputStream(new File("d:/hadoop-2.7.2.tar.gz.part1"));// 4 流的拷贝byte[] buf = new byte[1024];for(int i =0 ; i < 1024 * 128; i++){fis.read(buf);fos.write(buf);}// 5关闭资源IOUtils.closeStream(fis);IOUtils.closeStream(fos);fs.close();}
3、下载第二块,代码如下
@Testpublic void readFileSeek2() throws IOException, InterruptedException, URISyntaxException{// 1 获取文件系统Configuration configuration = new Configuration();FileSystem fs = FileSystem.get(new URI("hdfs://hadoop100:9000"), configuration, "root");// 2 打开输入流FSDataInputStream fis = fs.open(new Path("/hadoop-2.7.2.tar.gz"));// 3 定位输入数据位置fis.seek(1024*1024*128);// 4 创建输出流FileOutputStream fos = new FileOutputStream(new File("d:/hadoop-2.7.2.tar.gz.part2"));// 5 流的对拷IOUtils.copyBytes(fis, fos, configuration);// 6 关闭资源IOUtils.closeStream(fis);IOUtils.closeStream(fos);}
4、合并文件,把两块文件合并为一个
在Window命令窗口中进入到目录E:\,然后执行如下命令,对数据进行合并
type hadoop-2.7.2.tar.gz.part2 >> hadoop-2.7.2.tar.gz.part1,合并完成后,将hadoop-2.7.2.tar.gz.part1重新命名为hadoop-2.7.2.tar.gz。解压发现该tar包非常完整。
感谢各位的阅读!关于"java如何使用IO流的方式实现hdfs数据的上传和下载"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
文件
输入
数据
代码
系统
资源
输出
目录
方式
内容
命令
更多
根目录
篇文章
不错
实用
位置
拷贝
文件下载
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
高科技互联网
互联网核心科技是什么
喔噻互联网科技
西安互联网科技
善班互联网科技
嘟嘟瓜互联网科技
唐信互联网科技
沃里互联网科技
互联网高科技企业
互联网科技汛
科技大学互联网专业好不好
互联网科技公司需要的职位
哈尔滨新华互联网科技学院
贵州叶脉互联网科技有限公司所属行业
宝灵互联网科技有限公司
智腾互联网科技有限公司
新兴科技互联网创新大赛颁奖典礼
互联网科技圈年度人物
互联网方面的科技前沿
数字互联网科技有限公司
保险科技 互联网保险
圆梦互联网科技
科技服务与互联网
朗涯互联网科技
天下捷融互联网科技
来此购互联网科技有限公司
语蝶互联网科技有限公司
互联网在线教育科技创业
互联网科技实习生岗位
四川互联网展示科技馆设计