文章快速检索     高级检索
  浙江大学学报(理学版)  2017, Vol. 44 Issue (6): 660-665  DOI:10.3785/j.issn.1008-9497.2017.06.004
0

引用本文 [复制中英文]

林雅萍, 杜震洪, 张丰, 刘仁义. “格网索引+MapReduce”策略下的地理国情统计分析研究[J]. 浙江大学学报(理学版), 2017, 44(6): 660-665. DOI: 10.3785/j.issn.1008-9497.2017.06.004.
[复制中文]
LIN Yaping, DU Zhenhong, ZHANG Feng, LIU Renyi. Research on the analysis and statistic of geographical conditions based on the strategy of "Grid Index + MapReduce"[J]. Journal of Zhejiang University(Science Edition), 2017, 44(6): 660-665. DOI: 10.3785/j.issn.1008-9497.2017.06.004.
[复制英文]

基金项目

国家自然科学基金资助项目(41471313,41671391);国家科技基础性工作专项(2012FY112300);国家海洋公益性行业科研专项(201505003);浙江省科技攻关计划项目(2015C33021)

作者简介

林雅萍(1992-), ORCID:http://orcid.org/0000-0002-9324-7293, 女, 硕士, 主要从事地理国情与云计算相关研究

通信作者

张丰, ORCID:http://orcid.org/0000-0003-1475-8480, E-mail:zfcarnation@zju.edu.cn.

文章历史

收稿日期:2016-12-08
“格网索引+MapReduce”策略下的地理国情统计分析研究
林雅萍1,2 , 杜震洪1,2 , 张丰1,2 , 刘仁义1,2     
1. 浙江大学 浙江省资源与环境信息系统重点实验室, 浙江 杭州 310028;
2. 浙江大学 地理信息科学研究所, 浙江 杭州 310027
摘要: 地理国情统计分析是深度研究地理国情普查数据的首要前提.针对现有单机集中式数据存储与处理方式存在耗时长、效率低甚至不支持的问题,设计了“格网索引+MapReduce”策略,基于规则格网设计普查数据文件的分块组织与分布式存储方式,研制了格网索引与空间分析相结合的双层过滤机制,构建基于MapReduce的地理国情并行统计算法.最后,与无索引MapReduce、ArcGIS平台进行性能对比测试,结果表明:“格网索引+MapReduce”方法的统计效率远高于ArcGIS平台,对无索引MapReduce方法亦有明显的效率优势,研究拟为地理国情普查数据的高性能、多类型、大批量统计分析提供优选方案.
关键词: 地理国情统计分析    地理国情普查数据    格网索引    MapReduce    
Research on the analysis and statistic of geographical conditions based on the strategy of "Grid Index + MapReduce"
LIN Yaping1,2 , DU Zhenhong1,2 , ZHANG Feng1,2 , LIU Renyi1,2     
1. Zhejiang Provincial Key Lab of GIS, Zhejiang University, Hangzhou 310028, China;
2. Department of Geographic Information Science, Zhejiang University, Hangzhou 310027, China
Abstract: The statistic of geographical conditions is the primary premise for the deep excavation and application of geographical data. However, the traditional centralized data storage and processing method based on a single computer are time-consuming, inefficient and even unsupported. This paper creates a strategy called "Grid Index + MapReduce" to solve these problems. Firstly, we design a blocking file organization and distributed storage mode of the census data of geographical situation based on the regular square grid, and then make a double layer filtering method which combines the grid index and the accurate analysis. Lastly, we build a parallel processing algorithm of statistic of the geography conditions based on MapReduce. The test results of performance comparison of the strategy of "Grid Index + MapReduce", the indexless MapReduce and ArcGIS software show that the method of "Grid Index + MapReduce" is much more efficient than the ArcGIS software, and also has obvious efficiency advantages for the indexless MapReduce method. The study tries to provide an optimal scheme for the high-performance, multi-type and high-volume statistic and analysis method for the data of geographical condition survey.
Key words: the statistic and analysis of geographical conditions    the data of geographical condition survey    grid index    MapReduce    

地理国情统计分析是将普查数据转化为地理国情信息,再提升为国家决策服务的必要手段,有助于深化普查成果的全面应用,发挥普查成果对社会、经济的推动作用,提升各相关领域、专业的创新能力[1].地理国情统计分析的基本对象是地理国情普查数据,主要包括地表覆盖分类和重要国情要素两大类,具有体量庞大、来源多样、信息丰富、空间精度高、时效性强、应用层面广等典型的大数据特征.

当前,地理国情统计分析工作的开展主要依靠各类统计分析软件或应用系统[2-5],大多采用单机模式独立完成大规模普查数据的存储与统计分析.但是,由于单机CPU资源性能有限,在耗费大量存储空间的情况下,其执行统计分析任务则普遍存在耗时长、效率低下的问题,在数据量过大时甚至会出现宕机的情况.近年来,Hadoop云计算技术的发展逐渐成熟,在空间大数据领域尤其是栅格数据的高效存储和处理方面已有大量应用[6-8],但在矢量数据处理方面仍处于探索阶段,利用Hadoop进行矢量数据存储、索引构建、空间查询、空间分析等探索是目前云GIS领域研究的热点[9-11].

为改善现有普查数据在单机集中管理和统计分析处理性能上的局限性,有效提高地理国情统计分析效率,本研究基于Hadoop云平台,提出“格网索引+MapReduce”策略,设计基于HDFS的数据分块组织方式,并采用粗粒度格网过滤与细粒度空间分析相结合的双层数据过滤机制,最终应用统计分析的并行算法模型,实现对地理国情统计的大批量、准实时、高效并行化处理,旨在为地理国情普查数据的后续深度研究提供基础.

1 相关技术

HDFS[12]是Hadoop云计算平台中的分布式文件系统,具有多副本冗余备份、数据完整性校验、访问权限控制、负载均衡等机制.HDFS系统遵循主/从式架构,由1个NameNode和若干DataNode服务器协同组成HDFS集群,数据文件由DataNode负责存储,由NameNode统一调度.HDFS能够为超大规模数据提供分布式文件存储和管理服务.

MapReduce[13]是Hadoop云计算平台中的分布式计算基本框架,采用“分而治之,大而化小”的思想,通过定义可高度并行的map和reduce函数,基于本地计算原则,将大规模数据的复杂计算任务分发至对应或靠近数据的存储节点并行执行,由于其“迁移计算”代替“迁移数据”,降低了数据在网络传输过程中对并行处理效率的影响,能够支持大规模或超大规模数据的大批量高效并行处理.

借助HDFS的高可靠、高可扩的大数据存储系统,和MapReduce模型的高吞吐、高容错并行计算框架,能够为地理国情普查大数据的高效处理提供支撑.但MapReduce访问HDFS数据的常规方式是面向数据文件的,只能读取整个数据文件,无法根据所需提取数据文件内的特定要素记录,导致读取的数据量增加,尤其是无效数据读取量较大,数据有效提取性能较低.因此需要设计合适的数据组织和过滤机制才能有效支持地理国情统计分析的并行处理.

2 基于规则格网的地理国情普查数据分块组织 2.1 地理国情普查数据的统一文本化表达

地理国情普查数据,是地理国情统计分析的基本对象,采用基于Geodatabase模型的矢量数据集形式存储.而Hadoop MapReduce框架默认采用文本行的访问方式读取数据记录,因此本研究首先对现有基于Geodatabase模型的国普矢量数据进行文本化处理,再采用统一的文本方式表达要素记录的属性信息与空间信息,并以文本行描述完整的普查数据要素记录信息,降低数据的空间复杂度,以提高数据读取与操作的便捷性.

首先,将一条要素记录O包含的属性信息文本O.Attributes按照顺序排列,空间信息和拓扑信息O.Geometry则选用OGC(open geospatial consortium)简单要素模型中的WKT(well-known text)编码进行文本化,列于属性文本之后组成文本行,一个文本行包含一个要素记录的所有信息,最后形成TSV(tab-separated values,用制表符tab分隔值的文件)文本格式的国普数据文件.本文设计的国普数据文本格式为:

$ \left( {\begin{array}{*{20}{c}} { < {{\rm{O}}_1}.\;{\rm{ID}}\;{{\rm{O}}_1}.\;{\rm{Attributes}}\;{{\rm{O}}_1}.\;{\rm{Geometry}} > }\\ { < {{\rm{O}}_2}.\;{\rm{ID}}\;{{\rm{O}}_2}.\;{\rm{Attributes}}\;{{\rm{O}}_2}.\;{\rm{Geometry}} > }\\ \cdots \\ {{{\rm{O}}_{\rm{m}}}.\;{\rm{ID}}\;{{\rm{O}}_{\rm{m}}}.\;{\rm{Attributes}}\;{{\rm{O}}_{\rm{m}}}.\;{\rm{Geometry}} > } \end{array}} \right). $

基于地理国情统计分析需求,将地表覆盖分类数据文本化为LCRA.tsv文件,将重要国情要素数据文本化后整合为GNCF.tsv文件.

2.2 基于规则格网的地理国情普查数据文件分块组织

规则格网是构建空间索引时广泛使用的一种索引方式,其原理是将数据空间划分为具有一定间隔的网格,通过网格与数据的包含关系,建立两者之间的映射,并以网格作为数据之间空间关系的载体[14].为有效提高数据文件的访问性能,避免过多无效数据读取带来的磁盘I/O消耗,本研究基于规则格网索引理念设计了普查数据文件的分块组织方式.

首先,采用基于数据集要素对象数量的空间网格预估方法[15]确定划分的网格数量,其算法模型为

$ P = \left[{\left( {\left\| R \right\| + \left\| S \right\|} \right) \times {\rm{Siz}}{{\rm{e}}_{{\rm{kp}}}}} \right]/M, $ (1)

式(1)中,P为划分网格的数目,‖R‖为数据集R的数据对象基数,‖S‖为数据集S的数据对象基数,M为主存储器的字节大小,Sizekp则表示平均单个数据对象大小.

其次,根据普查数据全空间范围(Xmin, Xmax, Ymin, Ymax),获取格网单元大小w×l,并对数据空间进行格网划分,共有((Xmax-Xmin)/w)×((Ymax-Ymin)/l)个网格,根据网格的行列号xy设置网格的唯一标识编码xy,并创建对应的物理存储文件夹xy.根据每个网格的空间范围,判断国普数据文件中各要素所属的网格编码,将拥有相同编码的要素文本放进对应编码命名的文件夹中,如图 1所示.

图 1 地理国情普查数据分块组织 Fig. 1 Blocking file structure of geographical condition survey data

国普矢量数据包含点、线、面3种几何要素.点要素数据只会存储在一个对应网格编码命名的文件夹中,将边界上的点要素划分至其左侧或左上侧网格内.因线和面要素在空间中占据一定的区域范围,通常跨越多个网格.为保留要素的完整性,保证地理国情普查数据的客观性和权威性,本研究采用冗余存储策略,将跨越网格单元的多边形要素数据划分至其覆盖的多个网格内,并冗余存储在网格编码集合所对应的若干文件夹中.如图 2所示,多边形LCRA1跨越了格网00,10,01,02,12,也即00,10,01,02,12编码命名的文件夹中均存储有此多边形数据.

图 2 数据冗余存储机制 Fig. 2 Mechanism of data redundancy storage
3 “格网索引+MapReduce”策略下的地理国情统计分析

地理国情统计分析,是根据所需的统计单元和统计对象,通过相应的统计指标计算、汇总得到成果的过程.针对单机资源与性能难以有效支撑数据的有效提取和大规模要素统计效率低下甚至无法完成的问题,本研究设计了“格网索引+MapReduce”策略,采用规则格网索引与精确分析相结合的双层过滤机制,利用规则格网索引实现对普查数据的粗粒度空间过滤,在MapReduce的map任务阶段对数据进行精确的空间分析和要素类型过滤,既利用了规则格网索引快速检索的优势,又避免了其他无用数据参与统计分析指标的计算.

3.1 基于规则格网索引与精确分析的双层过滤机制

基于规则格网索引与精确分析的国普数据双层过滤机制建立在数据分块组织方式的基础上.

基于规则格网索引的国普数据粗粒度过滤,根据当前统计单元的空间范围R及其最小外包矩形(minimum bounding rectangle,MBR)RMBR,获取rMBR覆盖的网格集合GLst1,再获取GLst1中与R存在拓扑相交关系的网格集合GLst,然后根据GLst中每个网格的空间位置Xgmin, Xgmax, Ygmin, Ygmax计算其编码xy,网格编码计算公式如式(2)(3)所示.最后,获取GLst内网格编码集合,并确定所需数据文件的路径集合.

$ x = \frac{{\left( {{X_{{\rm{gmin}}}}-{X_{\min }}} \right)}}{w}, $ (2)
$ y = \frac{{\left( {{Y_{{\rm{gmin}}}}-{Y_{\min }}} \right)}}{l}. $ (3)

基于空间分析和要素类型判断的精确分析机制为利用MapReduce框架读取文件路径集合中的各数据文件,通过map函数并行读取数据文件中的要素记录O,根据O.Attributes要素属性过滤无效数据,再通过O.Geometry与R的叠加分析,过滤不相交的要素、提取相交的部分.对冗余存储的要素采用参考点法[16]来规避重复计算问题,参考点表示如下:

$ {p_r} = \left( {\max \left( {{o_R}.xl, {o_S}.xl} \right), \min \left( {{o_R}.yh, {o_S}.yh} \right)} \right), $ (4)

式中,pr参考点为O与R重叠区域的左上角边界点,只有当参考点与当前要素位于同一网格内时,才对要素进行提取.

3.2 基于MapReduce的地理国情统计分析并行化处理

地理国情统计分析处理过程中数据的空间分析处理和基本指标的计算汇总过程可并行化实现.以个数、面积、长度等基本要素指标的统计过程为例,以说明基于MapReduce的地理国情统计分析并行统计算法的基本思想.

将要素分类编码所属统计单元要素标识码组装为key值,要素各指标值拼装成规则的字符串作为value值,输出key-value键值对,reduce方法负责对相同单元和相同分类要素的value值集合进行各基本指标值的归并,最终得到统计分析任务的基本指标结果.下面详细描述基于MapReduce的地理国情统计分析并行算法的实现机制.

(1) 获取研究区域范围R、统计单元RList,利用基于规则格网索引的粗粒度数据过滤方法,向MapReduce框架输入所需数据文件,启动MapReduce并行统计任务.

(2) 采用map函数逐行读取数据文件的要素记录,基于要素属性及其空间信息,利用精确分析方法判断要素是否在研究区域内并属于统计对象.接着计算参考点,若参考点与该要素位于同一网格,则对要素进行提取和裁切以获取所需的有效数据,并对有效部分的面积、长度指标进行计算,将其分类编码和所属统计单元的标识码组装为key值,统计指标数值之间以“, ”间隔组成value值,向reduce函数输出key-value键值对.具体算法如下:

算法1  地理国情统计Map算法

Map Object

1{

2  if Object.CC is in CCList

3   for each rR List do

4    oG=Object.Geometry;

5    rG=r.Geometry;

6   if oG and rG intersect then

7     RP=reference point of oG and rG;

8     if RP in the grid then

9      p=overlay(oG, rG);

10   area=p.getArea();

11      length=p.getLength();

12      cc=p.getCC();

13      id=Object.ID;

14      index=id +“, ”+area+“, ”+length;

15      OID=cc+“, ”+r.ID;

16      emit (OID, index);

17}

(3) reduce函数并行读取map函数输出的键值对集合,并按照相同key值进行归并.对统一key值的value集合,按其拼装规则进行分解和统计,得到一个分类对象的指标汇总结果,仍以分类编码和所属统计单元标识码组装为key值,指标统计值之间以“, ”间隔组成value值,输出key-value键值对.

算法2  地理国情统计Reduce算法

Reduce(OID, list(index))

1 {

2 Sumarea=0.00;

3 Sumlength=0.00;

4 Sumcount=0;

5  for each index∈ list(index) do

6   if index.ID not repeat

7     Sumarea= Sumarea+index.area;

8    Sumlength=Sumlength+index.length;

9   Sumcount++;

10 emit (CC, List(Sumarea, Sumlength, Sumcount));

11}

(4) 输出基本指标的统计结果,得到最终统计数据.

4 实验过程与分析

研究了“格网索引+MapReduce”策略下的地理国情统计方法,基于规则格网进行数据分块组织,设计了粗粒度空间过滤和细粒度空间分析相结合的双层数据过滤机制,最终通过分布式统计算法模型实现统计分析处理的并行化,拟为大批量、准实时的地理国情统计分析提供优选方案.

对本研究的“格网索引+MapReduce”策略、无索引的MapReduce框架以及传统ArcGIS平台的集中统计方式进行性能对比实验.为此搭建了拥有6个处理节点的分布式集群,软硬件配置相同,其中1台为主节点,5台为子节点,另外选择一台与主节点相同配置的单机进行ArcGIS平台实验.设备参数如下:

硬件环境:DELL PowerEdge R730服务器,配有14核2.0 GHz CPU处理器、4×16 G DDR4内存、2×256 G SSD硬盘、3×300 G SAS硬盘和2 G缓存,并集成4 000Mb网卡.

软件环境:Suse Linux Enterprise Server 12 SP1(x64)操作系统,JDK版本为1.8.0_11,Hadoop版本为2.7.3.客户端配置为Intel core i7-6700处理器,配有4核3.4 GHz CPU、8 G内存、1 TB硬盘,ArcGIS版本为10.3.

实验数据选择浙江省地理国情普查地表覆盖分类数据和重要的地理国情要素数据,要素总量约705.6万和82.2万.实验采用25×25规则格网对普查数据进行分块组织.

图 3为“格网索引+MapReduce”策略、MapReduce框架以及ArcGIS 10.3平台下,对4种不同体量的地表覆盖分类数据集进行的基本统计性能对比.从图 3中可以看出,随着统计范围的不断扩大,数据体量不断增加,基于“格网索引+MapReduce”策略的统计方式较传统ArcGIS平台集中处理方式在性能上有较大的提升,较无索引的MapReduce方法也有较明显的提升.

图 3 3种策略的性能对比 Fig. 3 Time comparison of three strategies

图 4为“格网索引+MapReduce”策略下节点数量对统计性能影响的实验对比图,通过测试300万地表覆盖分类数据的并行统计效率,得到当节点数量较少时,并行统计处理时间较长,节点数量较多时,耗时较短,并行统计处理性能较高.

图 4 节点数与统计性能关系 Fig. 4 Relationship between number of nodes and performance of statistic
5 结论

针对地理国情普查数据统计分析中集中式存储与处理方式存在效率低下的问题,提出了“格网索引+ MapReduce”策略,利用规则格网对数据进行空间划分和组织,并进行分布式存储,设计了结合规则格网索引与精确属性分析的双层过滤机制,以保证数据读取的高效性和有效性,同时设计了地理国情基本指标统计并行处理算法,并与无索引MapReduce分布式处理以及基于ArcGIS 10.3平台的集中式处理方法进行了对比实验.结果表明,本文提出的统计算法的效率要高于其他两种方法.由于本文采用的是冗余存储方式,一定程度上会增加数据的存储量和读取数,对并行处理的性能产生一定程度的影响.格网的大小也会影响数据存储的冗余量,出现数据倾斜问题,从而影响并行处理效率.后续工作将对格网划分方式以及冗余存储策略等的优化进行更深入的研究.

参考文献
[1] 吴桐, 王小华, 兀伟. 基于地理国情普查的格网统计分析研究[J]. 测绘标准化, 2016, 32(1): 8–11.
WU T, WANG X H, WU W. Grid statistical research based on national geographical conditions census[J]. Standardization of Surveying and Mapping, 2016, 32(1): 8–11.
[2] 刘耀林, 何力, 何青松, 等. 地理国情统计分析系统设计与应用[J]. 地理信息世界, 2015, 22(6): 56–59.
LIU Y L, HE L, HE Q S, et al. Design and achivement of a statistical analysis system for geographic national conditions surveying and monitoring[J]. Geomatics World, 2015, 22(6): 56–59.
[3] 林富明, 李雁楠, 刘恒飞. 基于天地图的地理国情统计分析信息发布服务系统设计[J]. 测绘与空间地理信息, 2014, 37(6): 23–25.
LIN F M, LI Y N, LIU H F. Design of information publication and service system of national geographical condition statistical and analysis based on Tianditu[J]. Geomatics & Spatial Information Technology, 2014, 37(6): 23–25.
[4] 王军, 杨东岳, 张梁. 地理国情成果在线发布系统开发与应用研究[J]. 测绘与空间地理信息, 2014, 37(10): 114–116.
WANG J, YANG D Y, ZHANG L. Geographic conditions the results published online system development and applied research[J]. Geomatics & Spatial Information Technology, 2014, 37(10): 114–116. DOI:10.3969/j.issn.1672-5867.2014.10.034
[5] 肖提荣, 吴玉婷, 何照攀. 县域地理国情信息管理及统计分析监测系统的设计与实现——以华宁县为例[J]. 测绘通报, 2016(4): 121–123.
XIAO T R, WU Y T, HE Z P. Design and realization of monitoring system for management and statistical analysis of county geographic condition information:A case study of Huaning county[J]. Bulletin of Surveying and Mapping, 2016(4): 121–123.
[6] CAO K. Cloud Computing and Its Applications in GIS[D]. Worcester:Clark University, 2011. http://dl.acm.org/citation.cfm?id=2231444
[7] ASTSATRYAN H, HAYRAPETYAN A, NARISISIAN W, et al. An interoperable web portal for parallel geoprocessing of satellite image vegetation indices[J]. Earth Science Informatics, 2015, 8(2): 453–460. DOI:10.1007/s12145-014-0165-3
[8] LYU Z, HU Y, ZHONG H, et al. Parallel K-means clustering of remote sensing images based on mapreduce[J]. Lecture Notes in Computer Science, 2010, 6318: 162–170. DOI:10.1007/978-3-642-16515-3
[9] ELDAWY A, MOKBEL M. A demonstration of Spatial Hadoop:An efficient mapreduce framework for spatial data[J]. Proceedings of the Vldb Endowment, 2013, 6(12): 1230–1233. DOI:10.14778/2536274
[10] ELDAWY A, MOKBEL M F. Spatial Hadoop:A MapReduce Framework for spatial data[C]//2015 31st IEEE International Conference on Data Engineering (ICDE). Seoul:IEEE Computer Society, 2015:1352-1363. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=7113382
[11] AJI A. High Performance Spatial Query Processing for Large Scale Spatial Data Warehousing[D]. Atlanta:Emory University, 2014. http://pid.emory.edu/ark:/25593/gsjqm
[12] WANG J, LU C, WANG L Z. Concentric layout, a new scientific data layout for matrix data-set in Hadoop file system[J]. International Journal of Parallel Emergent & Distributed Systems, 2013, 28(5): 407–433.
[13] DEAN J, GHEMAWAT S. MapReduce:Simplified data processing on large clusters[J]. Communications of the ACM, 2008, 51(1): 107–113. DOI:10.1145/1327452
[14] 余劲松弟, 吴升. 面向大数据的地理格网分析操作模型比较[J]. 地球信息科学学报, 2013, 15(6): 862–870.
YU J S D, WU S. Research progress of array analytics towards big data[J]. Journal of Geo-Information Science, 2013, 15(6): 862–870.
[15] PATEL J M, DEWITT D J. Partition based spatial-merge join[J]. ACM Sigmod Record, 2001, 25(2): 259–270.
[16] DITTRICH J P, SEEGER B. Data redundancy and duplicate detection in spatial join processing[J]. IEEE Computer Society, 2000: 535–546.