HDFS小文件处理解决方案总结+FaceBook(HayStack) + 淘宝(3)

四、WebGIS解决方案概述

在地理信息系统中,为了方便传输通常将数据切分为KB大小的文件存储在分布式文件系统中,论文结合WebGIS数据的相关特征,将相邻地理位置的小文件合并成一个大的文件,并为这些文件构建索引。论文中将小于16MB的文件当做小文件进行合并处理,将其合并成64MB的block并构建索引。

DFS小文件处理解决方案总结+FaceBook(HayStack) + 淘宝(TFS)

从以上索引结构和文件存储方式可以看出,index是一般的定长hash索引,并且采用的是存储全局index文件的方式

read的过程是将小文件append到下文件后边,然后更新索引的过程

delete文件的过程采用lazy模式,更改的是FVFlag,在空间重新分配的过程中,才会根据该flag删除文件。

五、BlueSky解决方案概述

BlueSky是中国电子教学共享系统,主要存放的教学所用的ppt文件和视频文件,存放的载体为HDFS分布式存储系统。在用户上传PPT文件的同时,系统还会存储一些文件的快照,作为用户请求ppt时可以先看到这些快照,以决定是否继续浏览,用户对文件的请求具有很强的关联性,当用户浏览ppt时,其他相关的ppt和文件也会在短时间内被访问,因而文件的访问具有相关性和本地性。

paper主要提出了两个基本观点:

(1) 将属于同一课件的小文件合并成一个大文件,从而减轻namenode的压力,提高小文件的存储效率

(2) 提出了一种两级预取机制以提高小文件的读取效率,(索引文件预取和数据文件预取)索引文件预取是指当用户访问某个文件时,该文件所在的block对应的索引文件被加载到内存中,这样,用户访问这些文件时不必再与namenode交互了。数据文件预取是指用户访问某个文件时,将该文件所在课件中的所有文件加载到内存中,这样,如果用户继续访问其他文件,速度会明显提高。

BlueSky上传文件的过程:

DFS小文件处理解决方案总结+FaceBook(HayStack) + 淘宝(TFS)

BlueSky阅览文件的过程:

DFS小文件处理解决方案总结+FaceBook(HayStack) + 淘宝(TFS)

文件合并:

文件合并过程如果合并之后文件的大小小于block64MB的大小则直接存放到一个block中。(合并之后的文件包括local index文件)

如果合并之后的文件大小大于64MB有两种方式split这个大文件:

1、  local index文件、ppt文件、standresolution picture series存放在一个block中,剩下的picture series存在在其他的block中。

2、  在相邻block的连接处填充空白文件,具体过程:

DFS小文件处理解决方案总结+FaceBook(HayStack) + 淘宝(TFS)

文件映射:

文件的命名方式,分离的预取图片有其自身的命名方式,具体见paper。文件映射过程中,除了block中的局部索引文件之外,还有一个全局映像文件。该文件存放的内容为

根据全局mapping table 就可以根据merged file name 和 block Id到namenode上得到datanode的信息,然后到根据到具体的机器上找到相应的block获取到localindex file,根据original file name从local index file中查到从而定位到data。根据预取策略,在此过程中也会预取到local index file 和相关的file

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/567d8282da57fd50248938993581382f.html