基于MapReduce的地图瓦片存储布局优化方法技术

技术编号:12900946 阅读:130 留言:0更新日期:2016-02-24 11:13
本发明专利技术涉及基于MapReduce的地图瓦片存储布局优化方法,包括步骤:Map任务根据瓦片索引表计算出IndexKey对应的Number,将输入的(IndexKey,IndexValue)转换为(Number,IndexValue)输出;自定义分区算法将得到的(Number,IndexValue)进行分区;每个Reduce任务获得专属分区号的(Number,IndexValue),自定义分组算法进行分组,最终根据IndexValue读取瓦片数据,再重新写到新瓦片打包文件,更新索引项指向新打包文件;瓦片重新写入结束后删除旧打包文件。本发明专利技术满足了快速读取瓦片的需求,提高了系统性能,不影响瓦片生成存储的速度,保证了瓦片生成后以及在地图瓦片存储布局优化的过程中,瓦片正常对外提供服务。

【技术实现步骤摘要】

本专利技术属于分布式存储
,具体涉及一种基于MapReduce的地图瓦片存储 布局优化方法。
技术介绍
地理信息系统(Geographic Information System,GIS)是一个运用计算机科学对 地理信息进行采集、存储、管控、检索、处理、分析和显示的综合性技术系统。GIS具有数据量 大、需要复杂的空间处理与分析等特点,而云计算技术具有分布式存储、高吞吐量、分布式 计算、负载均衡、扩展性、数据备份以及错误恢复等特点,所以使得云计算广泛地应用在GIS 领域中。目前,国内外的公司和研究机构相继推出各自的GIS产品,包括国外的MapXtreme、 GeoMedia WebMap、MapServer、MapGuide 以及 Google Maps 等,国内的 SuperMap、MapGIS 和 GeoBeans 等。 GIS产品主要是向用户输出大数据量的点阵形式的地图,并在其中包含了诸如空 间数据的检索、查询等常见内容。传统的GIS产品提供的图片是由GIS服务器实时动态渲 染生成的。而由于服务器通常需要比较长的时间才能将用户感兴趣区域的地图转换为图片 格式,因此很大程度上影响了 GIS产品的响应速度。在"地图瓦片"概念提出后,以瓦片金 字塔为模型的地图瓦片预生成方案通过对地图进行预先切片生成地图瓦片后将其存储在 地图服务器端,取代图片的实时动态渲染生成,从而有效的解决了 GIS产品服务的效率问 题。所谓地图切片是指将指定地理范围内的地图,在某一比例尺级别下,切割成若干行和列 均为固定尺寸的正方形图片的过程,这些规整的图片又称为地图瓦片。地图切片针对每个 地图切片所表示的地理范围,进行下一个缩放级别的地图切片,直至地图达到设定的切片 级数或者最大(最小)比例尺。 这些GIS产品在地图瓦片生成方案上大多采用瓦片按行生成或者瓦片按照空间 邻近性生成。这两种方式各有优缺点。按行生成瓦片可以保证很快的生成速度,但是由于 写入的瓦片不符合空间临近性,所以瓦片访问时效率比较低;按照空间临近性生成瓦片虽 然写入的瓦片在访问时效率较高,但是瓦片生成速度比较慢。
技术实现思路
本专利技术的目的是提供一种,解决地 图瓦片存储不符合空间临近性原则、读取瓦片性能差的问题。 本专利技术所采用的技术方案是: ,其特征在于: 包括以下步骤: 步骤一 :Map任务读取地图瓦片金字塔生成时形成的瓦片索引表,根据(IndexKey, IndexValue)键值对中的IndexKey计算出该瓦片在金字塔中的顺序号Number,将IndexKey 替换为其对应的Number值,形成(Number,IndexValue)键值对输出; 步骤二:采用自定义分区算法将得到的(Number,IndexValue)键值对进行分区,使得 每个分区中Number列表是有序的,分区之间的Number也是有序的; 步骤三:每一个Reduce任务获得属于自己分区的(Number,IndexValue)键值对,采用 自定义分组算法对所有键值对进行分组,将所有(Number,IndexValue)键值对中的Number 替换为同一个值NumberO,使得每一个Reduce任务最终只处理一个分组,这个唯一分组为 (NumberO, List (IndexValue)); 步骤四:Reduce 任务循环读取(NumberO,List(IndexValue))中的每一个 IndexValue, 根据该索引值读取地图瓦片实体数据,然后将其写入到新的打包文件中,并同时更新索引 表中该地图瓦片对应的索引项,使该索引项指向新的打包文件; 步骤五:所有地图瓦片重新写入结束之后,将旧的打包文件删除。 步骤一中,瓦片索引表的组织形式为(IndexKey,IndexValue)键值对;其中, 行键IndexKey由地图瓦片金字塔版本名称、层级和行列号得出的四叉树编码组成,列族 IndexValue由地图瓦片打包文件名称、瓦片在打包文件中的偏移量、瓦片大小和删除标志 位组成。 步骤一中,根据(IndexKey,IndexValue)键值对中的IndexKey计算该瓦片在金字 塔中的顺序号Number的具体过程为: 1) 获得该金字塔的最小级别MinLevel,根据该MinLevel计算出该级别下第一张瓦片 的四叉树编码MinQuadtreeCode,该四叉树编码即为该金字塔下的最小四叉树编码; 2) 从IndexKey中解析出该地图瓦片对应的四叉树编码CurrentQuadtreeCode和该地 图瓦片所在层级CurrentLevel,根据该CurrentLevel计算出该级别下第一张地图瓦片的 四叉树编码CurrentMinQuadtreeCode,并计算出CurrentLevel和MinLevel之间所有的地 图瓦片数 FirstTileCount ; 3) 根据公式 CurrentQuadtreeCode-CurrentMinQuadtreeCode 得出 QuanternaryNumber即地图瓦片在当前层级的四进制顺序号,最后将QuanternaryNumber 转换为十进制并与FirstTileCount相加,即可得到地图瓦片顺序号Number。 步骤二中,采用自定义分区算法将得到的(Number,IndexValue)键值对进行分区 的具体过程为: 分区数目等于Reduce任务数; 分区算法基于公式式中,OrderPartitioner表示分区号,Number表示Map任务输出的地图瓦片顺序号, NumPartitions表示Reduce数量即分区数量,TileCount表示处理的总瓦片数。 本专利技术具有以下优点: 本专利技术是一种地图瓦片存储布局优化方案,利用该方案可以调整地图瓦片存储数据, 使其符合空间临近性原则,提高瓦片读取性能。解决了地图瓦片存储不符合空间临近性原 贝1J,读取瓦片性能差的问题,满足了 GIS应用要求尽可能低延时的访问地图数据的需求,同 时不影响瓦片生成存储的速度,也保证了地图瓦片生成后,以及在瓦片存储布局优化的过 程中,瓦片可以正常对外提供服务。【附图说明】 图1是本专利技术流程图; 图2是瓦片索引IndexKey ; 图3是瓦片索引IndexValue ; 图4是Map任务过程。【具体实施方式】 下面结合【具体实施方式】对本专利技术进行详细的说明。 本专利技术涉及的,针对现有方案的优 缺点,在瓦片按行生成的基础上,对生成后的瓦片进行瓦片存储布局的优化,这样既保留了 瓦片按行生成的高速度,同时也提高了瓦片的访问效率,并且在优化过程中,能够保证瓦片 对外提供正常的服务。 参见图1,本专利技术具体包括以下步骤: 步骤一 :Map任务读取地图瓦片金字塔生成时形成的瓦片索引表,根据(IndexKey, IndexValue)键值对中的IndexKey计算出该瓦片在金字塔中的顺序号Number,将IndexKey 替换为其对应的Number值,形成(Number,IndexValue)键值对输出。 所述瓦片索引表的组织形式为(IndexKey,IndexValue)键值对;其中,行 键IndexKey由地图瓦片金字塔版本名称、层级和行列号得出的四叉树编码组本文档来自技高网
...

【技术保护点】
基于MapReduce的地图瓦片存储布局优化方法,其特征在于:包括以下步骤:步骤一:Map任务读取地图瓦片金字塔生成时形成的瓦片索引表,根据(IndexKey,IndexValue)键值对中的IndexKey计算出该瓦片在金字塔中的顺序号Number,将IndexKey替换为其对应的Number值,形成(Number,IndexValue)键值对输出;步骤二:采用自定义分区算法将得到的(Number,IndexValue)键值对进行分区,使得每个分区中Number列表是有序的,分区之间的Number也是有序的;步骤三:每一个Reduce任务获得属于自己分区的(Number,IndexValue)键值对,采用自定义分组算法对所有键值对进行分组,将所有(Number,IndexValue)键值对中的Number替换为同一个值Number0,使得每一个Reduce任务最终只处理一个分组,这个唯一分组为(Number0,List(IndexValue));步骤四:Reduce任务循环读取(Number0,List(IndexValue))中的每一个IndexValue,根据该索引值读取地图瓦片实体数据,然后将其写入到新的打包文件中,并同时更新索引表中该地图瓦片对应的索引项,使该索引项指向新的打包文件;步骤五:所有地图瓦片重新写入结束之后,将旧的打包文件删除。...

【技术特征摘要】

【专利技术属性】
技术研发人员:李龙海张少将黄芬芬付少锋
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1