海量文件处理方式——Improve HAR

网友投稿 852 2022-05-28

改进的HDFS结构包含两部分:

用于聚合小文件为大文件的客户端组件,client;

用于缓存资源管理的数据结点组件,data node;

具体架构图如下:

改进的HDFS模型是基于索引的。存在依赖关系的、同一目录下的小文件可以聚合为一个大文件,依次来减少每一个小文件元数据都单独存储在NameNode中对于NameNode结点内存的消耗。

缓存策略可以增加小文件读速率。缓存管理器部署在DataNode结点,这样当每一次读取小文件时,可以首先从缓存中获取,而非磁盘。想想看,如果读文件不在缓存中,那么不得不到DataNode结点的磁盘获取。磁盘和内存的速率非一个数量级!。

文件整合的设计:每一个合并后的大文件包含被合并小文件的文件大小、在大文件中的偏移量,这些信息被整合在大文件索引文件中。

文件整合程序的功能如下:

就特定目录下的小文件排序,之后将小文件一个个合并为大文件;

确定待合并小文件总体的数量;

海量小文件处理方式——Improve HAR

确定合并后大文件大小,并且与HDFS默认块大小比较。

索引文件是依据每一个小文件的大小、偏移量的创建的。为了在HDFS块中存储大文件,需要确保大文件大小不能大于块大小(默认HDFS块大小为64M)。

如果合并后的文件大小大于HDFS块大小,则合并后的文件需要先分片,再存储到不同的HDFS块中。

基于上述描述,识别大文件中每个文件的偏移量和顺序,并据此构建索引文件,从而结束文件整合过程。

----------------------------------------------------------------------------------------------------------------------------------------------------------------

其实看上面的流程,我们发现Improve HAR也存在一些问题,比如合并后的大文件查找,如果是随机查,也会性能很差。如果索引采用hash方式可以适度缓解该问题。

Hadoop

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:只需五步学会Maven 3.6.1OR 3.6.3及其他版本的下载安装与配置【图文详解】
下一篇:盘它!基于CANN的辅助驾驶AI实战案例,轻松搞定车辆检测和车距计算!
相关文章