基于并行计算模式的瓦片地图数据及服务更新方法与系统的制作方法

文档序号:8473050阅读:539来源:国知局
基于并行计算模式的瓦片地图数据及服务更新方法与系统的制作方法
【技术领域】
[0001] 本发明涉及一种地图数据及服务更新方法,属于地理信息更新方法领域,具体涉 及一种基于并行计算模式的瓦片地图数据及服务更新方法与系统。
【背景技术】
[0002] 对于GIS服务中的瓦片数据生产是一个长期耗时的过程。传统瓦片数据生产过 程,都是通过单台机器去处理。参考使用全国(china400万)的数据生产瓦片,目前由于使 用的工具只能是按照网格的方式去切分,一行行的进行处理,整个全国的数据在一台PC机 (配置i5双核,内存4GB)上处理完,大约需要20多个小时。当工具完成了瓦片及其元数据 更新后,现有的服务的数据更新则需要通过服务管理系统完成服务的配置更新,以便当数 据生产完成后,实现服务的更新。当服务更新完成后,服务才能完成对更新后数据应用。 [0003] 如果采用并行计算方式进行瓦片数据及服务更新则可以利用并行计算框架自身 的优势,将瓦片数据的生产过程分派到多个负责完成计算任务的节点上,这样能充分利用 现有的硬件计算资源,从而使得瓦片数据生产效率上成倍提高。
[0004] 但是,现有技术中采用并行计算方式进行瓦片数据及服务更新时存在以下问题:
[0005] (1)无法自动进行任务分配,数据处理范围需要人工处理并形成对应切图方案,并 且还需要将这些切图方案,放到不同机器上,启动桌面工具进行切图;
[0006] (2)、对任务运行状态缺乏监控,由于缺少统一管理,因此需要人工记录当前工作 状态机器数量以及工作完成情况,在任务失败后,还需要人工重复执行,任务的状态难以监 控;
[0007] (3)、硬件的可扩展性较差,由于缺乏云平台的伸缩性,难以根据待处理数据量的 大小自动调整机器数量。

【发明内容】

[0008] 本发明主要是解决现有技术所存在的无法自动进行任务分配,对任务运行状态缺 乏监控以及硬件的可扩展性较差等技术问题,提供了一种基于并行计算模式的瓦片地图数 据及服务更新方法,该方法可以自动分配任务,并能在云平台上部署,可以动态的监控计算 机器的性能指标,根据生产任务的量来扩展和收缩计算资源,能够通过配置参数重做失败 任务,从而节约生产时间和管理成本。
[0009] 本发明的上述技术问题主要是通过下述技术方案得以解决的:
[0010] 一种基于并行计算模式的瓦片地图数据及服务更新方法,包括:
[0011] 以键值对形式定义一个可扩展的用于描述待处理的地图文件信息的地图定义文 件,所述地图文件信息包括金字塔层级范围、源文件地址、切图结果汇总介质;
[0012] 定义一个运行于JStorm框架上的切图构件,所述切图构件用于根据地图定义文 件中的地图文件信息生成若干个并行执行的瓦片生产子任务,并将各个子任务的执行结果 汇总成最终的瓦片地图数据;其中金字塔的每一层级对应一个子任务。
[0013] 优化的,上述的一种基于并行计算模式的瓦片地图数据及服务更新方法,根据预 先设置的阈值判断各计算节点的资源利用率是否超过上限及下限,并且当节点的资源利用 率起过上限时开启一个新的计算节点,当节点的资源利用率超过下限时,则关闭该计算节 点。
[0014] 优化的,上述的一种基于并行计算模式的瓦片地图数据及服务更新方法,所述切 图构件包括:
[0015] 数据源组件:继承Jstorm中的spout接口,用于从数据库读取任务,拆分成子任务 并发送给执行单元;
[0016] 任务执行组件,继承Jstorm中的IRichBolt接口,接收数据源组件的子任务,根据 子任务执行结果修改子任务的数据流;
[0017] 拓扑程序组件,继承并封装Jstrom中的Cofig组件和TopologyBuilder组件,从 而能够将数据源组件和任务执行组件进行组合,其定义了数据源组件和任务执行组件的结 合关系,并发数量、配置关系;
[0018] 数据封装组件,用于以键值对方式封装各个组件间传递的可序列化的元组数据。
[0019] 优化的,上述的一种基于并行计算模式的瓦片地图数据及服务更新方法,数据源 组件按规则读取并遍历任务表中的任务数据,将任务数据组织成元组数据类型后发送至 任务执行组件,任务执行组件处理所接收到的元组数据后并根据执行结果更新任务执行日 )'、O
[0020] 一种基于并行计算模式的瓦片地图数据及服务更新系统,包括:
[0021] 地图定义模块,用于以键值对形式定义一个可扩展的用于描述待处理的地图文件 信息的地图定义文件,所述地图文件信息包括金字塔层级范围、源文件地址、切图结果汇总 介质;
[0022] 构件定义模块,用于定义一个运行于JStorm框架上的切图构件,所述切图构件用 于根据地图定义文件中的地图文件信息生成若干个并行执行的瓦片生产子任务,并将各个 子任务的执行结果汇总成最终的瓦片地图数据;其中金字塔的每一层级对应一个子任务。
[0023] 优化的,上述的一种基于并行计算模式的瓦片地图数据及服务更新系统,还包括 监控模块,用于根据预先设置的阈值判断各计算节点的资源利用率是否超过上限及下限, 并且当节点的资源利用率起过上限时开启一个新的计算节点,当节点的资源利用率超过下 限时,则关闭该计算节点。
[0024] 优化的,上述的一种基于并行计算模式的瓦片地图数据及服务更新系统,所述切 图构件包括:
[0025] 数据源组件:继承Jstorm中的spout接口,用于从数据库读取任务,拆分成子任务 并发送给执行单元;
[0026] 任务执行组件,继承Jstorm中的IRichBolt接口,接收数据源组件的子任务,根据 子任务执行结果修改子任务的数据流;
[0027] 拓扑程序组件,继承并封装Jstrom中的Cofig组件和TopologyBuilder组件,从 而能够将数据源组件和任务执行组件进行组合,其定义了数据源组件和任务执行组件的结 合关系,并发数量、配置关系;
[0028] 数据封装组件,用于以键值对方式封装各个组件间传递的可序列化的元组数据。
[0029] 优化的,上述的一种基于并行计算模式的瓦片地图数据及服务更新系统,数据源 组件按规则读取并遍历任务表中的任务数据,将任务数据组织成元组数据类型后发送至 任务执行组件,任务执行组件处理所接收到的元组数据后并根据执行结果更新任务执行日 )'、O
[0030] 因此,本发明具有如下优点:(1)使用并行自动化的方式对矢量瓦片数据生产过 程进行生产,全方位了解任务的进度、状态;(2)使用自动的,以通知的形式向GIS服务管理 系统推送消息,以便实现GIS服务完成使用数据的更新。
【附图说明】
[0031] 附图1是本发明的一种原理图;
[0032] 附图2是本发明的一种工作流程图;
[0033] 附图3是本发明的任务更新流程图;
[0034] 附图4是本发明的地图定义文件示意图;
[0035] 附图5是本发明的数据连接信息示意图;
[0036] 附图6是本发明的数据源示意图;
[0037] 附图7是本发明的样式文件示意图;
[0038] 附图8是本发明中spout组件处理流程;
[0039] 附图9是本发明中基于GeoTopologyBuilder的使用示例图;
[0040] 附图10是本发明各组件间的处理流程;
[0041] 附图11是本发明并行切图构件的结构图。
【具体实施方式】
[0042] 下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
[0043]实施例:
[0044] 本发明实是一个基于平行计算下的瓦片数据生产,并且在云平台下布署。目前云 平台的底层操作系统都为Linux或者Unix内核,所以其并行计算框架采用阿里巴巴开源项 目JStorm进行并行计算的集群环境搭建,通过其提供的API开发库开发并行环境上运行的 切图构件。
[0045] 如图1所示,JStorm并行计算集群环境需要N台机器,可以是虚拟的,可以是物理 的;最低至少是两台,其中有一个是任务控制节点,其它的机器为计算节点。集群环境上需 要开发切矢量瓦片程序的构件(Topology),进行发布。发布之后的构件根据定义的规则在 各计算节点上分配切图的程序进程。
[0046] 构件(Topology)是并行计算环境下计算程序的拓扑结构,类似于住宅小区的电 网和水管网。例如10个计算节点的并行切图构件工作模式。
[0047] 图2中,任务从源抽取进行分发,由各计算节点进行并行化的切不同省份的瓦片 数据,最后将数据存储至相同的目标存储中。从而解决单节点串型化的效率问题。
[0048] 对于服务更新来说,传统的程序处理手段只能靠人为的更新后,去被动的在服务 发布的管理后台重新发布GIS服务,而当前并行计算生产完数据后可以通知服务管理系统 去重发服务。
[0049] 图3中任务领取进程会收到切图程序的通知后,当累计数量完成后,通知服务发 布系统更新服务。
[0050] JStorm并行计算开源项目是使用Java语言编写的,所以其提供的API(应用程序 接口)都是由Java程序编写的,本项发明必须在JStorm并行计算容器环境上运行也是使 用Java语言来实现的。
[0051] 本发明中,以键值对形式定义一个可扩展的用于描述待处理的地图文件信息的地 图定义文件,所述地图文件信息包括金字塔层级范围、源文件地址、切图结果汇总介质。
[0052] 如图4所示,一个地图定义文件中可以同时包含多个数据连接定义,使用名称作 为其唯一标识。
[0053]数据连接定义包含连接的名称(Name)、标题(Title)和描述(Description),连接 使用的用户名、密码、密码加密类型,建立连接使用的协议、连接地址和附加参数,如图5-6 所示。
[0054]目前可支持的协议包括文件(File)、0racle数据库(Oracle)、HTTP协议(Http)、 HTTPS协议(Https)、Access数据库(Access)、SQLServer数据库(SQLServer)和SQLite 文件(SQLite)。使用不同的协议,其访问地址(Address)也会有所不同,描述如下:
[0055] (I)File协议:
[0056] 数据文件所在文件夹的路径,支持绝对路径和相对路径。使用绝对路径时,必须使 用file协议的URL定义文件夹路径;相对路径代表相对于当前地图文件的路径,当前文件 夹的相对路径使用长度为〇的字符串表示。
[0057] 如地图定义文件的地址为D:/demodata/map/mapl.GMAPX,使用存放在本地文件 夹D:/demodata/testl文件夹内的数据文件,使用绝对路径时其访问地址为:
[0058] file:///D:/demodata/testl
[0059] 使用相对路径时其访问地址为:
[0060] . ./testl
[0061] (2)OracIe协议:
[0062] 通过数据库实例名或数据库服务名来描述。使用数
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1