欢迎访问一起赢论文辅导网
本站动态
联系我们
 
 
 
 
 
 
 
 
 
 
 
QQ:3949358033

工作时间:9:00-24:00
博士论文
当前位置:首页 > 博士论文
基于“分治网格”的空间大数据快速分析方法
来源:一起赢论文网     日期:2015-10-31     浏览数:3582     【 字体:

基于“分治网格”的空间大数据快速分析方法贾文珏1,安 琼2(1.国土资源部信息中心,北京100812;2.中国农业大学信息与电气工程学院,北京100083)摘 要:为解决复杂空间数据快速处理分析的空间大数据开发利用难点问题,提出基于“分治网格”的空间大数据快速分析思路和技术框架。初步实现原型系统,基于原型系统,以土地利用变更调查数据叠加分析为实例,对关键技术进行验证。实例验证结果表明,利用该技术路线和框架,可以提升海量空间数据的处理分析速度。关键词:空间数据;大数据;快速分析;集群化;分治网格中图法分类号:TP311 文献标识号:A  文章编号:1000-7024 (2015)08-2317-05doi:10.16208/j.issn1000-7024.2015.08.060收稿日期:2014-08-11;修订日期:2014-10-15基金项目:国土资源部国土资源战略研究重点实验室开放课题基金项目(KFS201309)作者简介:贾文珏(1976-),女,河北邢台人,博士,副研究员,研究方向为国土资源信息化、地理信息系统研究与应用;安琼(1980-),女,山西晋中人,博士,研究方向为农情遥感监测、地理信息系统应用等。E-mail:jiawenjue@163.comFast method for analysis of big spatial data using divide and conquer gridsJIA Wen-jue1,AN Qiong2(1.Information Center of Ministry of Land and Resources of People’s Republic of China,Beijing 100812,China;2.College of Information and Electrical Engineering,China Agricultural University,Beijing 100083,China)Abstract:To solve the difficulties of effectively processing and analyzing complex data in spatial data utilization,an idea of divideand conquer grids was introduced and a general framework for fast big spatial data processing was proposed.A prototype systemwas realized,and the feasibility and performance of the key techniques were verified through a real-world land use change analysis.The results show that the proposed framework and techniques can greatly reduce the analysis time.Key words:spatial data;big data;fast analysis;clustering;divide and conquer grid0 引 言如何能够实现TB级空间数据的快速分析,是当前海量空间数据分析面临的重要问题[1-3]。学术界对大数据的管理和分析已经进行了深入研究,企业界也提出和研发了各类创新技术。如Google针对文件类大数据应用需求,设计开发了GFS (Google file system)[4]分布式文件系统和Bigtable[5]数据库,提出了Dremel[6]计算模型;微软提出了Dryad[7]的数据处理模型,用来构建支持有向无环图类型数据流的并行程序;Facebook针对海量小文件的文件系统,推出了Haystack[8],通过多个逻辑文件共享同一个物理文件、增加缓存层、部分元数据加载到内存等方式有效地实现了海量图片的存储;Amazon针对大数据时代的数据存储,推出了Dynamo[9],通过综合键/值存储、改进的分布式哈希表、向量时钟等技术实现了一个完全分布式、去中心化的高可用系统;开源界提出了类似Google的Hadoop[10]技术框架体系,并在各个行业得到广泛应用。虽然目前已经形成了大量的大数据存储、管理和分析技术,但是这些技术大多数是针对文本数据、属性数据、图像图形数据的,在空间大数据的处理方面往往不能够直接应用。本文从空间数据的特点出发,结合空间数据分析的具体需求,提出基于“分治网格”的空间大数据并行快速分析思路,并基于此思路搭建了基于Hadoop框架的分析原型系统,对关键技术进行验证,验证结果表明,利用该技术路线可以极大提升空间大数据的处理分析速度。1 基于“分治网格”的并行分析技术框架1.1 总体思路考虑空间数据海量,多图层叠加分析计算需求普遍,传统的单机计算模式难以满足时效性要求的情况,本文提出基于“分而治之”理念的空间数据并行化分析技术。其核心是按照一定的规则,将不同空间图层数据划分为不同的分治网格区域。在此基础上,利用集群处理技术,对需要进行分析的空间图层,按照各个分治网格进行分配调度, 计算机工程与设计2015年利用多台计算资源进行并行计算,之后进行汇总,形成统一的结果,实现分析速度的大幅度提升,总体思路如图1所示。图1 基于“分治网格”的集群空间计算流程1.2 分治网格划分在网格划分方面,一般来说,网格划分的越小,可以并行计算的基本单元也越小,可以并行的程度也越高。但同时,网格越少,网格数量就越大,继而导致整体数据存储量和前期切分工作量的大幅上升。在实际工作中,一般来说,对于局部范围的分析,可以采用较小的网格,对于大面积的分析,可以采用较大的网格。为方便分析,可以将网格划分为正方形格式。为方便不同比例尺网格的聚合和汇总,可以将网格体系设计为多级体系,上一级的网格可以由下一级别网格聚合而成。网格的划分可以根据不同的需求进行定制,比如采用平面坐标形式,可以基于公里网格进行向下拆分和向上聚合,见表1。表1 基于平面坐标的多级分治网格划分级别大小描述1 100km*100km 全国1200个网格2 10km*10km 全国12万个网格3 1km*1km 全国1200万个网格4 100m*100m 全国12亿个网格5 10m*10m 全国1200亿个网格分治网格划分也可以结合计算机中二进制计算特点,采用四分方式,下级网格面积为上级网格面积的1/4,方便多级网格的定位。1.3 网格大小选取网格划分后,在并行计算时,首先需要确定分治网格的大小。分治网格的大小直接影响着并行计算的性能。如果将全国划分为一个网格,则无法并行,计算模式退回为单机运行模式;如果网格划分到像素级别,则并行程度可以极大提升,但是计算任务数量又过大,导致运行额外开销增高。根据集群计算的特点,一般可以考虑按照一个分治网格内的要素数量进行网格大小的选取。如根据计算机性能,如果总要素数量为300百万,有10个并行处理节点,则平均每个节点需要处理30万个要素分析。另外一种方式就是划分为10个左右的网格,每个任务负责一个网格的处理。但这种方式中,如果某一网格运算量较少,任务结束后就会造成资源的浪费。因此应该适当加大网格数量,如可以让每个节点每次处理1万个左右的要素,也就是网格数量大约在300个左右。这种模式下,10个节点并行进行300左右的并行任务。总体上看,网格大小的选取是一个和数据特点密切相关的工作,在具体工作中可以根据实际情况进行动态的优化。1.4 空间数据的预处理由于很多空间数据当前往往采用数据库形式存储,但是如果直接在集群环境下由各个任务读取数据库数据并进行分析,会导致数据库成为整个分析的瓶颈。因此有必要对数据库中的数据进行处理。预处理工作包括基于分治网格的图层分格、分格图层的分区存储、分格图层的索引建立等多个工作。分格主要是将网格和图层进行空间叠加,将原图层拆分为每个网格一个图层的格式。分区存储是指将分格后的图层进行格式转换,导入到分布式的分区行式或者列式存储系统中。索引建立是指在分区存储的基础上,利用空间四分树及其它索引方式,建立空间数据的索引,提升后续分析效率。1.5 集群式空间计算方式为应对海量数据的处理计算能力的需求,可以采用集群化计算技术,将不同图层和网格的叠加分析任务并行化,利用多个节点的计算能力并行处理,解决计算能力不足。在集群化处理方面,可以采用当前大数据技术体系中的Map Reduce计算模式,即:将大的计算任务分解为小的三类任务,总体分解任务、单个执行任务、数据汇总任务。总体分解任务负责将大的任务计算的环境、数据进行拆解分发,具体任务可以在多个节点上进行执行,数据汇总任务负责将各个子任务的数据进行汇总形成最终结果,并进行其它的清理工作。通过此类Map Reduce计算方式的应用,可以突破以往单机计算能力不足的缺陷。2 初步实现及性能评价2.1 初步实现基于上述框架,本文搭建了原型系统,对本文提出的关键技术进行验证。原型系统总体结构和采用的具体技术如图2所示。·2318·第36卷 第8期  贾文珏,安琼:基于“分治网格”的空间大数据快速分析方法 图2 原型系统技术架构  通过数据抽取工具,将两年空间土地利用变更调查Shapefile文件数据导入的Oracle空间数据库中,之后利用数据转换工具,将关系数据库表数据转换为CSV文件,并将文件存储到HDFS分布式文件系统之中。之后基于ESRIGisTool for Hadoop,开发基于格网的并行空间数据叠加分析工具,分析结果通过并行程序存储到结果数据库,供其它分析引擎和显示引擎进行分析和展示。2.2 性能评价2.2.1 空间叠加运行时间比较本研究中选取某试点区域两年的土地利用变更调查数据样本数据。每年的利用变更调查数据包含约70万图斑数据。原始Shape矢量数据每个约324MB,转换为CSV文件后每个文件大小约740MB。本研究中,基于Hadoop搭建1个主节点、3个数据节点的Hadoop集群环境,选取缺省的HDFS文件块大小为64MB。每个数据节点配置1颗4核CPU、8G内存、1TB硬盘和千兆网卡。在分析中,选取10公里网格作为分析单元。在设计Map Reduce程序实例中,两年土地利用空间数据按照所相交10公里网格进行分配,凡是与同一网格相交的图斑,所相交部分统一被分发至某一Reducer任务进行叠加计算。本研究中,分别在单机环境、2个数据节点和3个计算节点环境下(12个Mapper任务和24个Reducer任务),对上述土地利用数据进行分析,运行时间比较如图3所示。通过分析,可以看出利用ArcGIS10.0,对两年土地利用图斑数据进行空间相交分析(Join),在单台PC计算机,1颗4核主频3.1GHZ CPU,8GB内存,1TB SATA 7.2Krpm硬盘,Windows 7 64位环境下,运行时间约15min,运行期间CPU 使用率最高约76%,内存使用率约30%。图3 不同环境下土地利用变更数据叠加分析时间比较利用Hadoop的Map Reduce技术,在单机(单节点-伪分布式)环境下,完成同样分析,需要时间约为35min。可见,Hadoop在单机环境下(伪分布式环境,namenode和datanode均在该改服务器上)的性能比传统的ArcGIS分析更慢。这主要是由于Hadoop的Map Reduce技术主要是利用并行来实现效率的提升,但为实现并行,本身引入一定的额外处理负担,导致单机环境性能明显低于传统技术方式。当将分析程序在2个数据节点的环境下时,可以实现性能的提升,Hadoop双节点环境下,同样的分析任务可以在9min左右完成,性能超过单机环境下的ArcGIS。这主要是由于两个节点上,通过Map Reduce,生成了12个Reducer任务,这12个Reducer任务被分配到两台数据节点的8个CPU内核上进行预算,实现了同时多个任务并行计算,从而缩减了运行时间。继而,将任务提交到3个数据节点,启用24个Reducer后,运行任务可以在5min左右完成,单机运行时间缩短为ArcGIS的1/3。由此可见,利用Hadoop的并行处理,可以将大空间图层的分析效率大幅提升,·2319· 计算机工程与设计2015年满足海量数据的分析需求。2.2.2 网格划分对运行时间的影响分析在实际分析中,网格大小划分同运行时间有直接的关系。一般来说,网格数量的多少应根据计算集群的节点数量进行。图4显示了在3个Hadoop集群节点、12个Mapper任务、24个Reducer任务配置下,不同网格大小划分对应的土地利用图层数据相交操作所需的时间。不同大小的网格数量见表2。图4 不同环境下土地利用变更数据叠加分析时间比较表2 不同大小的网格数量级别网格大小网格数量1 30km*30km 362 25km*25km 643 10m*10km 3244 5km*5km 12965 1km*1km 32000由图4可以看出,网格数量和运行时间不是简单的线性关系。当网格是10公里网格时,运行时间最小。更小的网格划分时,运行时间有所延长,但延长量不大。当网格划分更大时,运行时间也会延长,而且延长量较大。这主要是由于网格主要是用于拆分数据,使得同一网格内的要素可以独立进行处理。正常情况下,当网格数量低于Reducer任务数量时,会造成部分Reducer任务没有需要处理的数据,导致资源浪费。当网格数量高于Reducer任务时,每个网格由一个独立的Reducer任务对其进行处理。为了保障网格数量高于Reducer任务数量时的Reducer任务处理量相对均衡,一般可以考虑网格数量是Reducer任务的整数倍数。同时,由于网格内的要素数量不同,为了避免一个Reducer任务处理的网格数量相同,但网格内要素量差别较大的问题,可以使用随机算法分配网格到不同的Reducer任务上,并且使网格数量级是Reducer任务数量的10倍左右,这样统计上看,负载不平衡程度可以控制在10%以下。同时,网格也不应该太小,过小的网格会导致按网格数据分发任务到Reducer任务时排序工作量加大,导致系统运行时间加长。一般来说,每个网格内的要素数量最好高于1万,但低于10万,这样Reducer任务可以利用内存空间索引技术,快速进行空间叠加操作。2.2.3 Mapper任务数量对运行时间的影响在Hadoop环境中,Mapper和Reducer任务数量对于任务的执行时间有直接影响。本研究中,Mapper任务主要负责将原始数据按照网格范围,分发到不同的Reducer任务上;Reducer任务主要负责将某一网格内的两年的土地利用图斑进行叠加计算。图5显示了在3个数据节点、固定Reducer为24的情况下,不同数量的Mapper任务对运行时间的影响。图5 不同数量的Mapper任务对运行时间的影响/s由于本研究中选取的文件块大小为64MB,输入文件为740MB左右,每个文件大约被拆分为12个大小为64MB的文件块。对于没有文件块,Hadoop缺省启用至少1个Mapper任务。缺省的12个Mapper任务下(24个Reducer),系统运行时间为311s。实验中也可以增加Mapper数量,为每一个文件块配置2个Mapper任务,总Mapper任务为24个时,系统运行时间为435s。通过以上分析,可以看出,Mapper任务数量对系统运行性能影响不大。这主要是由于Mapper任务负责读取输入的数据文件,并将数据文件进行分发。分发阶段的主要时间消耗为文件读取和网络通信,计算量小,加大Mapper数量并不会减少文件读取的网络时间,反而会加大Mapper的管理负担,延长系统运行时间。因此,在实际图层叠加工作中,可以考虑按照文件块数量,每个文件块配置一个Mapper任务,这个也是Hadoop中的缺省配置。2.2.4 Reducer任务数量对运行时间的影响图6显示了在3个节点,12个Mapper任务的情况下,不同数量的Reducer任务对运行时间的影响。图6 不同数量的Reducer任务对运行时间的影响/s从图6可以看出,Reducer任务的数量直接影响运行时·2320·间。当使用1个Reducer任务的时候,网格内的叠加分析均由该Reducer任务完成。而一个Reducer任务只能运行在一台数据节点,且无法完全利用多核计算资源,导致运行时间较长。当Reducer任务数量增加时,多个Reducer任务可以同时在多台数据节点上运行,达到并行处理效果,缩短运算时间。由上图可以看出,Reducer任务为3时,运行时间缩短为10min左右。随着Reducer任务数量的增加,并行程度加大,运行时间缩短。当Reducer任务达到24时,运行时间降为约5min。这时的CPU 利用率基本达到饱和。如果进一步加大Reducer任务数量,发现处理时间反而延长,在Reducer任务数量为48个时,运行时间变为6min左右,这主要是由于CPU 利用饱和情况下,继续增加Reducer任务数量,加大了任务分发管理和额外负担,反而导致性能下降。一般来说,Reducer任务的数量配置应该结合CPU数量和处理能力进行,要保证CPU 利用率相对饱和的情况下,减少Reducer任务数量。对于空间数据分析,缺省可以考虑1核CPU对应2个Reducer任务。3 结束语传统的空间数据分析技术非常成熟,对中小量空间数据分析较为实用,但是对空间大数据在数据存储、计算方式、分析技术方面尚存在不足。针对这些问题,本文提出了基于“分治网格”的空间大数据快速分析思路和技术框架,初步实现了原型系统,并基于原型系统以土地利用变更调查数据叠加分析为实例,对关键技术进行了验证。实例验证结果表明,利用本研究提出的技术路线和框架,可以极大提升海量空间数据的处理分析速度。本研究提出的基于“分治网格”理念和空间大数据分析技术对海量空间数据的开发利用有着积极意义。

[返回]
上一篇:农产品安全追溯系统的云计算技术性能提升设计
下一篇:大数据条件下金融风险测度的方法