海量小文件处理方式——HAR
目前针对大数据场景处理海量小文件的方式和理论比较多,今天我们来聊一聊HAR,hadoop archive
Hadoop archive 正如它的名字一样,是基于归档技术将大量小文件打包到HDFS块。Hadoop archive 中的文件存储在主存中,可以直接访问。
下图是归档中的小文件数据模型:
即目录dir下面存在n个文件,分别是file-1,file-2,。。。file-n。
启动归档操作,将上述n个文件打包为Firsttry.har文件,Firsttry.har文件中包含了index、masterindex和保存文件的分区,比如part0,part1等。
使用hadoop archive可以减少Namenode节点存储压力,并且可以减少map操作从而提供性能。
使用下面的命令来创建Har 文件:
hadoop archive -archiveName name -p <parent> <src>* <dest>
上述命令会启动一个map reduce任务完成文件打包。
例如:
hadoop archive -archiveName firsttry.har -p /user/hadoop dir1 dir2 /user/Sachin
注:当创建archive时,源文件不会被更改或删除。
总结下hadoop archive方式的几个限制:
1、hadoop archive读文件性能比HDFS读文件性能差。
2、hadoop archive创建之后不能修改,不能追加。
---------------------------------------------------------------------------------------------------
为了解决hadoop archive创建后不能修改的问题,明天我们来聊聊改进版的hadoop archive如何解决这个问题的。
- 点赞
- 收藏
- 关注作者
评论(0)