基于分布式云数据中心的城乡规划大数据集成处理平台
2020-08-14柳运昌
柳运昌,张 娜
(1.河南城建学院 计算机与数据科学学院,河南 平顶山 467036;2.河南省城乡规划大数据应用技术工程研究中心,河南 平顶山 467036)
移动互联网、物联网技术的推广应用产生了大量实时反映城市社会经济活动特征的数据,包括电网运行、道路车速和流量,甚至每个人的位置和行为。这些庞大而繁杂的城市感知大数据均可用于城乡规划建设及管理,从而形成城乡规划大数据。城乡规划大数据具有种类复杂、体量巨大、时间跨度大的特点[1]。城乡规划的关键是如何从海量的数据中识别可用的数据,评估潜在的价值,形成有效信息,进而作为规划高效信息的基础促进城乡转型发展。然而,面对海量、多源、不间断的城乡规划大数据,如何提供可扩、连续的处理支持以满足多样化、动态变化的城乡规划应用需求成为当前城乡规划系统建设的一个核心问题。
近年来,研究者基于GIS构建了多规合一信息平台[2],从存储的角度研究大数据的高效访问[4-6],从大规模数据的分布式处理[7-9]等角度开展了大量与上述需求相关的研究工作。还有一些研究从分布式数据中心的角度处理大数据[10-12]。从现有的研究成果来看,存在的主要问题有:(1)城乡规划大数据平台的数据融合功能有待完善。(2)数据质量较低,数据管控能力不强。(3)数据共享不畅,数据集成程度不够。城乡规划业务按管理职责进行分专业管理,条块分割,不能构建数据与实际规划对应的网络关系,数据利用价值不高,数据不能充分满足城乡规划业务需求。
针对上述问题,结合城乡规划大数据及其处理类型特征,提出并设计了一个基于分布式云数据中心的城乡规划大数据集成处理平台。该平台采用分布式云数据中心实现跨应用的城乡规划数据共享,为承载多样化的城乡规划大数据处理应用提供集成化支持。
1 城乡规划大数据
城乡规划大数据是以往城市中各系统体系运作的记录产物,以大容量的形式真实记录和反映城乡的变迁,其分类如图1所示。
图1 城乡规划大数据分类图
城乡规划大数据来源有:
(1)数字化的传统数据和空间信息:比如数字化的城建档案,矢量化的城市历史地图,历次人口、工业、农业、地名普查信息等,该类数据信息由各职能部门收集保存。
(2)城市规划和城市研究信息,主要利用的是带地理坐标、地理流线轨迹和流量的数据,互联网时代产生的新数据主要有带地理坐标的微博、电子地图分类兴趣点、时时微信位置、大众点评商业网点、公交地铁刷卡数据等。
从城乡规划大数据分类来看,包含社交网络、城市感知数据的城乡规划大数据增长过快,数据体量日益增大。而现有数据存储方式面临数据可靠性的风险。在物联网与移动互联网提供全面、精准与实时的城市发展及运行环境下,分析城乡规划大数据的来源可知,多源异构城乡规划感知数据往往存在数据缺失、断续、时空关系不一致和采样频率及测量精度的差异等问题,如何实现海量多源异构数据的融合是一个具有挑战性的问题[3]。此外,面对海量的城乡规划大数据,现有的处理方法在计算效率和响应时间上已不能满足用户的需求。
2 城乡规划大数据集成处理平台
由于城乡规划大数据种类多样,数据量庞大,数据具有更高的维度,算法更加复杂,并且计算和数据之间会存在特定的依赖关系,因而传统的处理平台难以满足对于多源异构城乡规划数据的集成分析。此外,对于大规模的城乡规划应用,巨量的数据与城乡规划处理算法实际上可以分布在位于不同的地理区域的多个数据中心。在这种情况下,高效的存储、管理、共享和访问分布式城乡规划大数据具有高容量和数据复杂性,非常具有挑战性。
针对城乡规划大数据处理,基于分布式云数据中心架构,采用Hadoop大数据处理方案,提出了基于分布式云数据中心的城乡规划大数据集中处理平台,以提高城乡规划数据分析挖掘的速度与可扩展性,并实现了初步的原型系统。
2.1 基于分布式云数据中心的城乡规划大数据集成处理平台
基于分布式云数据中心的城乡规划大数据集成处理平台由基础服务层、数据共享分析层与业务应用层组成,如图2所示。平台采用一个地理分布式的云架构,由位于不同地理位置的多个云数据中心组成。它为城乡规划应用提供了一个持续收集处理数据的平台,同时提供搜索、排序和数据挖掘等一系列服务,每个云数据中心都提供存储和计算基础设施。各个区域收集的数据存储在相应的存储集群中,计算集群包含一组互连和虚拟化服务器。
图2 基于分布式云数据中心的城乡规划大数据集成处理平台
基础服务层是数据分析层和业务应用层的基础,其主要目的是利用云计算技术,深入挖掘城市规划自身的需求,通过特定的算法对不同采集频率的源数据进行整合,为城乡规划大数据分析提供标准的整合基础数据。此外,将不同系统的数据进行整合,对异构数据进行分析和存储,辅助规划进行数据存储、分析和画图等业务工作,具备安全性和稳定性。
数据分析层结合基础服务层为城乡规划大数据管理提供实际服务,主要包括对传统数据、基于大数据技术获取的数据和分析数据的存储及管理。数据分析层是整个框架的核心,编制人员对于传统的基础地形数据、规划数据及城市发展数据要进行空间数字化,形成“一张图”的基础底图。建立多源的规划知识库,提取知识中的方法、思路及分析模型。
业务应用层包括规划项目编制和个人学习,将数据分析层产生的分析结果存储到云端,根据不同的用户业务请求,提供和展示不同的分析结果,具有易用性。在各类规划编制的过程中,编制人员通过门户中的目录服务查找所需的信息,并根据推送的知识和数据开展工作。另外,随着规划项目的编制,当中形成的规划数据、成果也可形成类似规划成果,如 GIS 查询系统、规划建设计划跟踪系统等信息化产品,提供规划产业链的延伸服务。
2.2 城市规划大数据存储
大数据存储系统的架构是其数据管理的支撑,决定了大数据访问的效率与可靠性,并为向上层计算需求提供高效的数据源访问。为不失一般性,考虑城乡规划集成处理平台管理多个地方的数据,将所有数据汇集并传输到云中以便进行处理。用户请求提交到云数据中心后,系统根据分布式云数据中心的网络与负载状况,采用数据副本传递策略协调云数据中心间数据的备份和交互。云数据中心间数据传输与信息交互主要通过其间通信节点进行,数据中心内采用基于Gossip协议的内部通信机制。单个云数据中心由通信节点、管理节点、存储节点和外存储节点组成。云数据中心内的存储机制融合HDFS(Hadoop分布式文件系统)与对象存储的思想,由管理节点和大量存储节点构成。其中,管理节点作为客户端,以推拉模式获取本云中存储节点的状态信息,存储节点存储本数据中心产生的数据,外存储节点存储其他云数据中心的备份数据。通信节点采用数据副本管理技术备份相应数据至其他云数据中心或接收来自其他云数据中心的数据备份到外存储节点中。
数据分析应用程序部署在云端,与数据源连接到多个数据中心。在Hadoop集群中,数据存储在HDFS,需要复制每个数据块容错的若干副本。系统模型与HDFS不冲突,因为即使在HDFS中存储了每个数据块的多个副本,也只会加载一个副本进行计算。如果需要远程处理,则转移到云数据中心进行网络传输。
2.3 城乡规划大数据融合处理
城乡规划大数据融合是利用云计算技术实现对分散系统和异构数据的整合,将存于不同系统的城乡规划基础设施信息、对象信息和空间信息进行有效组织,再利用大数据处理技术,解决整合后海量数据的存储和读取。数据融合处理由三部分组成:解析器、执行器以及封装器,如图3所示。
图3 城乡规划大数据融合
请求解析器模块接收从上层传送的请求,经过封装器处理后进行任务分配,将结果传送给执行器并调用Map过程。解析器需要知道各个异构数据源的元数据。为了确保每个用户能够得到正确的元数据信息,系统调用虚拟数据库监视模块来处理连续更新的问题。封装器与数据融合模块对最后数据结果做融合处理并封装好后传输给用户。
分布式云数据中心的城乡规划大数据融合处理过程为:模型以GEO方式处理文件,GEO是一种文件执行策略,首先在不同数据中心执行Map操作,然后复制中间数据到单个数据中心进行Reduce操作。有两种数据移动过程的相应阶段:第一阶段,数据可以移动到任何数据中心进行Map操作;第二阶段,在考虑数据相关性的情况下将多个数据中心Mappers产生的中间数据传送到单个数据中心处理。在此模型中,数据一旦被移动到数据中心生成并以增量样式处理,只计算新到达的数据和中间数据,来自过去的数据可以重复使用。
执行器将子请求转换成本地数据源能够直接执行的形式,在对应的数据源中执行请求。各请求在请求解析器中解析成对应各数据源的子请求,子请求在管理控制下,进行Map任务调度,Map过程的执行结果 Inter Result将作为输入,被管理控制器分配到对应的Reduce函数中执行 Reduce 过程,最终Reduce结果集成到融合函数,进行最终的融合并将结果传给用户,同时将数据存储到数据库存档以备多用户多次使用。Map Reduce 过程用于处理多海量异构数据集的过程:在第一步的数据集中,平行处理两个大块数据集以找到基于某些属性的匹配,生成中间结果,然后根据数据的依赖性集中到单一的云数据中心。在第二步的数据集中,执行 Reudce操作将结果数据集融合,如图4所示。执行结束后,融合数据模块处理请求结果中可能的冲突和不一致性,并将请求结果融合成用户需求的格式传输给用户。
图4 基于分布式云数据中心的城乡规划大数据融合处理过程图
3 实验与分析
3.1 实验平台
实验在3个数据中心进行。数据中心1由配备有两个Xeon处理器的5个节点组成,可以支持24个线程、32 GB的RAM和2 TB的磁盘;数据中心2由配备有两个opton处理器的30个节点组成,支持4个线程、8 GB的RAM和一个500 GB的磁盘;数据中心3有10个虚拟机实例,每个实例CPU为8核,内存为8 GB,存储空间100 GB。3个数据源分别处于不同的地理位置。数据中心使用的系统是Hadoop系统,使用一个实例作为HDFS和SCAP的主节点。所有其他节点用作数据节点和工作节点,网络拓扑如图5所示。HDFS的块大小为128 MB,重复数为3。
图5 实验网络拓扑图
城乡规划大数据收集模块首先基于Sqoop开发ETL模块,实现结构化数据从关系型数据库到Hadoop平台的迁移,其次基于Hadoop Common开发半结构化数据、非结构化数据的传输功能;大数据存储和管理模块首先基于HDFS实现大数据的物理存储,其次基于HIVE实现城乡规划大数据的逻辑管理和高速访问;大数据分析模块基于Mahout开发城乡规划大数据分析功能。
3.2 数据集
系统开发了相关的网络数据爬虫程序,分别从房天下、赶集网和安居客等网站爬取与住房相关的数据。其中,从房天下爬取220万条房屋信息,从赶集网爬取100万条房屋信息,从安居客爬取54万条房屋信息。每个样本共采集物业类型、建筑面积、挂牌总价、建筑年份、楼层、有无配备电梯、房屋结构、装修程度等8个指标信息。此外,还采集有POI数据用于城市功能划分。
3.3 实验验证及分析
(1)实验一:MapReduce节点数目对于数据集成的影响
首先测试在不同节点下整个系统的运行状况如何。存放房天下网站数据的houseinfoftx表中有220万条数据,位于数据中心2;存放赶集网网站数据的houseinfogjw表中有100万条数据,位于数据中心3,两张表拥有相同数量的 key,有20%key 的值相同可以进行数据融合。两个表的数据加工处理后传递到数据中心1进行融合处理,对外提供统一的服务。Hadoop节点数对系统的影响如图6所示。Hadoop从1个节点逐步增加到8个节点,每次增加1个,系统的数据保持不变。
从图6可以看出:数据量较少时,只有1个节点的系统性能却比拥有4个节点的系统性能高,但8个节点的系统性能又比1个节点的性能好。分析Reduce端数据连接可知,由于在 Reduce 端数据连接的过程中需要花费大量的时间将 Map 方法的处理结果传输到 Reduce 端。在 1个节点的情况下,都是本地的数据处理没有网络间的数据传输,所以性能好于 4 个节点,但是使用8个节点分布式系统的性能优势就体现出来。
图6 Hadoop节点数对系统性能的影响
(2)实验二:不同数据量时的系统性能
分别以 1、2.5、5、7.5、10(十万条)数据测试 8个节点条件下系统的性能(20%数据可以进行数据融合处理),其测试结果如图 7所示。
图7 数据量对系统性能的影响
通过测试结果表明:系统并未因为数据量的增加而导致所花费的时间线性增加,平台能够在较短时间内处理多数据源海量数据,为用户请求提供完整信息的同时满足了速度快、效率高的要求,取得较好的效果。
实验也表明系统的使用有一定的局限性,在业务数据量不是很大的情况下,由于Hadoop自身的原因会带来一定的额外资源消耗,不能体现本系统的优势。此外,系统只适合城乡规划大数据业务平台对海量数据进行数据集成与融合的业务。
4 结论
针对海量、多源、不间断的城乡规划大数据,分析其处理类型特征,构建了基于分布式云数据中心的数据集成处理平台。该平台能提供可扩展、实时、连续的处理支持以满足多样化、动态化的城乡规划应用需求。结合Hadoop架构,运用虚拟数据库技术,搭建城乡规划大数据集成平台原型系统。以城乡规划应用为例,对其多源异构数据进行融合处理及存储,对已完成的系统进行了功能与性能测试。实验表明:系统能够在较短时间内处理多源异构海量的规划数据,为用户提供完整而不冗余的信息。