基于hadoop的海量瓦片小文件存储管理方法

文档序号:8498722阅读:1258来源:国知局
基于hadoop的海量瓦片小文件存储管理方法
【技术领域】
[0001] 本发明涉及hadoop分布式平台上进行栅格数据存储管理方法,特别是海量、多 源、多版本栅格小文件的存储管理方法。
【背景技术】
[0002] 随着GIS技术的快速发展,地图数据急剧增长,相应的瓦片数据量大、数据源多、 版本多,如何高效存储管理海量地图瓦片数据成为难题。
[0003] 云计算的出现提供了一个新的思路。近几年来,为了解决大规模数据的存储和管 理的问题,许多公司和机构提出了一系列基于"云计算"技术的可扩展的大规模数据管理方 案。目前主流的开源项目Hadoop是一个包含了海量数据存储和计算的分布式系统架构,可 以在廉价PC Server上部署大规模结构化存储的集群。
[0004] 目前已有较多针对小文件数据存储和管理的研宄,并已提出了一系列解决方法, 这些方法中普遍采用的是对小文件进行合并成大文件,再使用分层索引的方法来管理这些 合并后的大文件。
[0005] 专利号为CN201310398165. 4公开了一种海量瓦片数据的存储方法及读取方法, 该方法根据获取的瓦片数据的分层信息生成一级索引文件的数据块;将一级索引文件的数 据块进一步划分为数据网格,得到每个单元格在数据块中的位置坐标;根据位置坐标和分 块信息生成对应瓦片数据的二级索引文件;按照先到先存的方式将瓦片数据存储;在每次 进行目标瓦片数据存储写入时,将对应生成的一级索引文件和二级索引文件存储。
[0006] 这种技术方案存在以下缺点: (1) 现有的小文件存储和管理方法多基于分层索引来管理数据,分层索引带来的问题 是要额外耗费精力来开发一种Hadoop集群小文件存储机制来保证小文件合并后的块文件 索引与对应的这个块一起传输到同一个DataNode的同一位置,实现小文件合并后的块文 件索引的分布式存储,Hadoop集群中的NameNode也需要额外消耗资源来管理索引文件,增 加内存开销; (2) 在项目应用中可能存在数据源多样,多版本的瓦片文件,分层索引的方法并不适用 于多数据源和多版本的小文件的快速和高效读取; (3)项目存在大量原始数据和频繁的实时数据请求,现有方案没有专门针对数据传输 和数据处理进行优化,将影响项目运行时的数据传输和数据响应性能表现。

【发明内容】

[0007] 有鉴于此,本发明提出了一种基于hadoop的海量瓦片小文件存储管理方法,不用 额外开发Hadoop集群存储机制,利用Hadoop本身自带的功能来存储和管理小文件。该方 法针对海量、多源、多版本栅格小瓦片提供高效存储、快速读取及高性能栅格数据服务。本 发明还对标准TMS (Tile Map Service)进行改进,解决传输原始数据和应对实时数据处理 请求造成的延迟与带宽占用,以满足项目数据检索与传输要求。
[0008] 本发明采用以下技术方案实现:一种基于hadoop的海量瓦片小文件存储管理方 法,其特征在于:包括以下步骤:步骤S1:对欲存储的文件的大小进行判断,如果单个文件 小于20M的将其进行序列化压缩再入库存储,如果单个文件大于等于20M就直接入库存储; 步骤S2 :引入了希尔伯特曲线对存储的文件进行排序;步骤S3 :对存储的文件进行压缩及 生成瓦片索引信息;步骤S4 :对瓦片文件进行分类、命名;步骤S5 :建立瓦片信息索引表; 步骤S6 :提供一改进型地理数据块服务ITMS,通过所述ITMS提供的对多类型预生成地理数 据单元块进行异步访问;步骤S7 :将Memcached作为一个缓存区域,若请求的瓦片数据在缓 存列表中,则直接返回该瓦片数据,否则去HBase中查询;将缓存查询结果字符串索引保存 到缓存列表中,并将被请求过的数据瓦片保存在内存中。
[0009] 在本发明以一实施例中,步骤S4中的命名规则为:数据来源+投影方式+文件格 式+Id+版本;其中数据来源为元数据XML中记录了不同地图数据来源的编号,投影方式为 元数据XML中记录不同投影方式的对应编号,文件格式为元数据XML中记录了不同文件格 式对应的编号,Id为区分同层同类型同格式的序列化块ID而采用与系统时间有关的随机 数,版本为由客户端和服务端约定好的并写在配置文件中版本编号。
[0010] 在本发明一实施例中,步骤S5所述索引表通过行关键字rowkey的字典顺序来组 织数据;其中RowKey为SRS+Lod+X+Y+Dataset+FileType,共18字符,其中SRS字段是投影 方式对应的编码,Lod、X、Y分别代表层、经度和炜度,支持24层分层,DataSet是外层和内 层数据集的说明,FileType是文件类型对应编码。
[0011] 在本发明一实施例中,通过ITMS接口接收客户端请求使其接收服务元数据资源 及地理数据块资源,其中服务元数据资源为服务端实现的能力和包含的信息,地理数据块 资源表示一层地理数据中的一个瓦片;利用键值对列表形式表示参数和值,通过HTTPGET 或POST方式向系统发送服务请求。
[0012] 与现有技术相比,本发明具有以下优点: (1) 无需对现有Hadoop集群存储机制进行修改,通过希尔伯特曲线排序再利用Hadoop 本身自带的SequenceFile技术对栅格瓦片数据进行序列化压缩存储;利用Hadoop的 MapReduce分布式计算的功能,在生成瓦片压缩块的时候实现多台服务器多线程并行压缩 及生成瓦片索引信息,提高海量文件入库存储速度;对块文件名的规则命名管理,能对海 量、多源、多版本栅格小瓦片提供高效存储、快速读取及高性能栅格数据服务; (2) 对标准TMS(TileMapService)服务规范进行改进,设计了ITMS(ImprovedTile MapService),解决传输原始数据和应对实时数据处理请求造成的延迟与带宽占用,以满 足项目数据检索与传输要求; (3 )本通过在分布式数据库HBase上搭建瓦片数据索引数据库,充分利用了HBase对大 数据索引的支持,为海量的地图瓦片数据量提供很好的支持。
【附图说明】
[0013] 图1为本发明一实施例瓦片获取的流程图。
【具体实施方式】
[0014] 下面结合附图和具体实施例对本发明做进一步说明。
[0015]本发明提供一种基于hadoop的海量瓦片小文件存储管理方法,其特征在于:包括 以下步骤
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1