iServer GP服务介绍及使用
作者:Neshoir
大数据时代的来临,人们对于空间大数据处理分析的自动化与性能需求也越来越迫切。为此,SuperMap 产品提供了地理处理服务(简称GP服务),通过可视化界面将地理处理算子(以下简称算子)构建为地理处理模型(以下简称模型)。这样模型不局限于在某个系统里运行,提供复用性,通过发布服务,可以在各个端进行调研,从而实现空间大数据处理与分析流程的自动化。
一、介绍
-
GP服务作为iServer产品的一个子模块服务,位于support/geoprocessing目录下。其配置文件位于webapps/iserver/WEB-INF/iserver-geoprocessing.xml。GP服务的主要几个参数:
- enabled:是否开启GP服务
- xmx:GP服务的最大内存
- port:GP服务端口
-
启动iServer后,进入服务列表中的geoprocessing/restjsr服务资源页面,进入list页面可以看到所支持的算子信息,包括算子的输入参数及输出参数等,主要包括这几类:
- 空间机器学习、深度学习
- 大数据组件数据导入导出
- 大数据组件矢量数据处理
- 大数据组件栅格数据处理
-
进入GP服务页面,地址: http://127.0.0.1:8097/gpmodeler/index.html ,如截图
- 左侧列出了所有的算子,将算子拖拽到中间"Builder"窗口。
- 编辑算子的参数,右侧的"inputs"会列出参数的相关信息,"option"是非必填参数,对于矢量数据可以通过连接参数读取,也可以通过iServer数据注册,GP服务会自动检测出符合条件的已注册数据。选择算子后可以按delete键删除算子。
- "file"菜单可以将模型导出,也可以导入已构建的模型。"clear"菜单可以清除整个模型。
- 每个算子都对应有一个"result"输出,选中"result",点击右上方的"Run Process"即可运行整个链路的模型。
- 执行通过的模型,可以点击右上方的"Publish Process",将模型发布为服务,业务系统可以通过rest api调用该模型服务。
二、使用:通过spark读取点数据,创建缓冲区,将结果数据写到udbx中,然后发布为地图服务。
-
环境说明,使用windows上的iServer,使用spark的集群模式。
-
准备一份点数据。以udbx存储。注:需要udbx在spark集群的每个worker节点都要能访问到该数据,可以以共享目录形式存在。
-
添加CreateSparkContext算子,创建spark程序入口对象SparkContext,参数说明:
- master:集群地址,spark://127.0.0.1:7077
- appName:应用名称,firstTest
- settings:可选参数,以键值对方式传入,spark.cores.max=4,spark.executor.memory=3g。windows的iServer必须传入本机ip,以便于spark集群能找到应用提交的客户端,spark.driver.host=192.168.15.152
-
添加读取矢量数据的ReadAsFeatureRDD算子,参数说明:
- dataConnInfo:是数据的连接信息,–providerType=sdx --dbType=UDBX --server=D:/testinput/gp/tData.udbx --dataset=park
- sparkContext:集群入口,将上一步的result连接上。
-
添加数值型缓冲区分析NumericBuffers算子,参数说明:
- inputRDD:分析数据,连接上一步的result
- distance:缓冲半径,100 Meter
-
添加写出到SDX的SaveAsSDX算子,参数说明:
- featureRDD:结果数据集,连接上一步的result
- server:结果路径,D:/testinput/gp/tBuffer.udbx
- alias:数据源别名,buffer
- outputDatasetName:结果数据集名称:pB
-
运行上一步的result,可以得到结果。如截图:
-
添加publishmap算子,将上一步结果发布为服务,参数说明:
- server:iServer的服务地址
- user:用户名
- password:密码
- dataConnInfo:数据的连接信息,填入上一步结果的result。
-
发布结果成功,如图:
三、模型发布,便于复用
-
选择要发布的算子,点击"Publish Process",填写名称即可。
-
发布成功后,可以在support/geoprocessing/models目录下能看见有模型相关的配置文件。也可刷新页面在算子列表里看见发布的模型:
3. 该模型文件也支持在idesktop X产品里进行可视化界面编辑和导出,这里就不详细介绍。
4. 发布的模型,也可以通过GP服务对外提供的rest api,发送post请求来执行,根据模型描述传入参数,这就不详细介绍。
四、状态查看,所有的模型执行过程,都可以查看状态,以及参数,结果等信息,在geoprocessing/restjsr服务资源页面,进入processStatus页面查看,如图:
当然也可以通过日志logs/geoprocessing_logs/geoprocessing-*.log来查看执行过程的状态信息。