一种基于海量小文件高效上传HDFS的方法及系统与流程

文档序号:12063858阅读:来源:国知局

技术特征:

1.一种基于海量小文件高效上传HDFS的方法,其特征在于:包括以下步骤:

1)搭建Hadoop2.7.1的集群环境,设置HIVE、HDFS的环境与配置,设置名称节点组和资源管理组;

2)对各结节搭建网站服务器集群;

3)设置HIVE与HDFS的关联表;

4)建立小文件收集的文件池;

5)对文件池中的数据进行预处理程序的部署和调试;

6)设置小文件合并后的大小近似为Hadoop的块大小;

7)启动清洗、提取、合并、累加、上传的程序;

8)将数据上传至HDFS。

2.根据权利要求1所述的一种基于海量小文件高效上传HDFS的方法,其特征在于:所述步骤4)包括,通过网站服务器中的业务处理逻辑先进行文件大小的判断,Hadoop块对其长度设定一默认值,逻辑规定小于Hadoop块长度的文件被判定为小文件,以形成文件池;如果文件长度大于Hadoop块的长度,则被判定为大文件,直接放入待上传队列中;循环这一操作直至此次上传的所有文件处理完毕。

3.根据权利要求2所述的一种基于海量小文件高效上传HDFS的方法,其特征在于:所述步骤5)包括,获取文件池中小文件的文件名、文件长度及文件上传时间戳,通过安全散列算法SHA-1生成文件存储ID。

4.根据权利要求3所述的一种基于海量小文件高效上传HDFS的方法,其特征在于:步骤5)中通过安全散列算法SHA-1生成文件存储ID,具体为:利用小文件文件名与上传时间戳进行字符串拼接,再对拼接得到的字符串使用安全散列算法SHA-1,从而生成小文件的存储ID。

5.根据权利要求3所述的一种基于海量小文件高效上传HDFS的方法,其特征在于:步骤6)包括,根据服务器内存大小,申请一定内存的缓冲区,所述缓冲区的大小为Hadoop的块大小。

6.根据权利要求5所述的一种基于海量小文件高效上传HDFS的方法,其特征在于:步骤7)包括,遍历文件池中的小文件,以最优的方式将找出合并文件总大小与缓冲区大小近似的N个小文件,根据文件存储ID将N个相应的小文件放入待上传队列中。

7.根据权利要求6所述的一种基于海量小文件高效上传HDFS的方法,其特征在于:其中,合并文件总大小大于等于阈值S1小于等于阈值S2,其中阈值S1为小于缓冲区大小的某个值,阈值S2等于缓冲区的大小。

8.根据权利要求6所述的一种基于海量小文件高效上传HDFS的方法,其特征在于:根据文件存储ID将文件池中的小文件排序,按先后顺序对小文件进行遍历,当已遍历M个小文件,而这M个小文件中有N个小文件的合并文件总大小与缓冲区的大小近似时,则停止遍历,并将相应的N个小文件合并后移至待上传队列中,再按原先的排列顺序对文件池中剩下的小文件重新遍历;当文件池中加入新的小文件时,会根据文件存储ID将新的小文件从原有小文件的后面继续排列下去。

9.根据权利要求8所述的一种基于海量小文件高效上传HDFS的方法,其特征在于:将N个小文件合并具体包括,先提取小文件中的元数据,并通过Python处理技术将N组元数据合并。

10.实现权利要求1-9任一所述海量小文件高效上传HDFS的方法的系统,其特征在于:包括:接收单元,分类单元,标记单元,合并单元和上传单元,其中:

接收单元,用于接收需要上传的文件;

分类单元,比对文件与Hadoop块的大小,将文件分为小文件和普通文件,普通文件直接上传至HDFS;

标记单元,获取每个小文件的文件名、文件长度及文件上传时间戳;

合并单元,申请一定内存的缓冲区,将总大小与缓冲区大小近似的N个小文件进行合并,并移至待上传队列;

上传单元,将待上传队列中的文件上传至HDFS。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1