HDFS实际应用场景之文件合并

本文介绍了如何使用自定义PutMerge程序将多个小文件合并并上传到HDFS。内容包括使用`hadoop fs -getmerge`命令进行文件合并,以及在开发过程中遇到的错误,如IllegalArgumentException和输入输出流的关闭问题,以及解决这些问题的方法,如配置core-site.xml和hdfs-site.xml,并确保正确使用输入流和输出流。
摘要由CSDN通过智能技术生成
①场景:合并小文件存放到HDFS上,列如,当需要分析来自许多服务其的Apache日志时,各个日志文件可能比较小,然而Hadoop更合适处理大文件,效率会更高,此时就需要合并分散文件。如果先将所有文件合并,在复制上传到HDFS上的话,需要占用用本地计算机的大量磁盘空间。采取在向HDFS复制上传文件的过程中将小文件进行合并,效果会更好。
②开发程序

开发一个PutMerge程序,用于将合并文件后放入HDFS。
③命令getmerge
用于将一组HDFS文件在复制到本地计算机一起合并。
1)hadoop fs -put dataout1 daout daout6 /tmp
//将多个文件夹上同时传到HDFS /tmp目录下
2)hadoop fs -put trade_info.txt datain /sort1
//将trade_info.txt和datain文件同时上传到/sort1下
3)hadoop fs -getmerge /sort1 /root/yunfan1
//将这几个文件合并为一个文件
代码实现
文件的上传和下载就是字节字符流的读写操作。
读文件:输入流–>read
写文件:输出流 –>write
分析:
localFileSystem(本地)中的许多小文件上传到(合并)到HDFS
①本地每个文件打开输入流进行读取内容
②HDFS文件打开输出流,进行内容写入
③循环操作
④关闭流

public
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值