发明名称 一种基于HDFS的海量小文件处理方法
摘要 本发明公开了一种基于HDFS的海量小文件处理方法,通过对小文件过滤、元数据读取、生成文件ID完成对文件的预处理,并开辟内存缓冲区,建立文件上传队列,对文件进行延时存储;在缓冲区将小文件合并为<key,value>结构的Mapfile文件进行存储;将文件元数据存储在分布式数据库Hbase,Hbase持久化在HDFS中;利用Status标志位表示文件状态,以完成缓冲区小文件快速读取,Mapfile碎片合并等操作,从而支持HDFS对小文件的即时增删改。本发明提高了HDFS对小文件的读取效率,使系统支持对小文件的即时更新操作,提升了系统的整体性能。
申请公布号 CN105404652A 申请公布日期 2016.03.16
申请号 CN201510724658.1 申请日期 2015.10.29
申请人 河海大学 发明人 陈洁;王龙宝;张雪洁;孙泽群;安纪存;马鹏举
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 南京经纬专利商标代理有限公司 32200 代理人 朱小兵
主权项  一种基于HDFS的海量小文件处理方法,其特征在于,具体步骤如下:步骤1,根据设定的第一阈值,对服务器接收的上传文件进行筛选过滤;步骤2,获取筛选过滤得到的小文件的文件名、文件长度及文件上传时间戳,通过安全散列算法SHA‑1生成文件存储ID;步骤3,利用Status标志位表示文件存储状态,其中,Status标志位共有0、1、2三种状态,分别表示缓冲区文件、HDFS中已同步文件和已删除文件;步骤4,采用分布式无关系型数据库Hbase存储小文件的元数据,并将Hbase数据持久化在HDFS中;步骤5,根据服务器内存大小,申请一定内存的缓冲区,建立上传队列,将文件缓存至缓冲区,若缓冲区中的文件大小已超过设定的第二阈值或将要上传的小文件大小超过剩余缓冲区,则将缓冲区中的小文件合并并且清空缓冲区;其中,小文件合并为:将缓冲区中的小文件合并成结构为<key,value>键值集合形式的Mapfile,即将每个小文件的文件名作为key值、文件内容字节流作为value值进行拼接;步骤6,将步骤5中合并后的文件通过异步线程延时上传至HDFS。
地址 211100 江苏省南京市江宁开发区佛城西路8号