处理自动化工具为可视化建模提供基础的能力支撑,预定义提供的处理自动化工具包含:
- 组件工具:支持单机存储的各种丰富的数据类型,提供支持单机运行多种矢量和栅格数据管理、数据处理功能。由 SuperMap iObjects Java 产品提供算法能力。
- 空间深度学习:提供目标检测、地物分类、场景分类等功能。由 SuperMap iObjects Python 产品提供算法能力。
- 大数据工具:支持多种分布式矢栅数据的存储和管理,包括 HDFS、Hbase 引擎;支持多种基于分布式矢栅数据的计算和分析,包括密度分析、叠加计算、对象查询、空间汇总等;支持三维数据处理功能,包括三维缓存生成、倾斜数据处理等。由 SuperMap iObjects for Spark 产品提供算法能力。
软件许可与功能模块对照
功能模块 | 功能介绍 | iDesktopX 使用 | iServer 使用 |
---|---|---|---|
组件工具 | 支持单机存储的各种丰富的数据类型,提供支持单机运行多种矢量和栅格数据处理功能。 | SuperMap iDesktopX 基础版及以上版本 | SuperMap iServer 标准版及以上版本 |
空间深度学习 | 提供目标检测、地物分类、场景分类等功能。 | SuperMap iDesktopX 标准版及以上版本 + 扩展模块 | SuperMap iServer 专业版及以上版本 + 机器学习服务扩展模块 |
大数据工具 | 支持多种分布式数据的存储和管理,包括 HDFS、Hbase 引擎;支持多种基于分布式数据的计算和分析,包括密度分析、叠加计算、对象查询、空间汇总等。 | SuperMap iDesktopX 标准版及以上版本 + 扩展模块 | SuperMap iServer 专业版及以上版本 + 分布式分析扩展模块 |
大数据工具的集群环境
在使用处理自动化工具中的大数据工具时,我们可以选择使用分布式集群环境进行算法功能的计算,从而大大提升大数据量的计算效率。
集群环境的部署
SuperMap 提供的大数据工具能够支持管理分布式集群存储的空间数据,并使用分布式集群进行空间分析。分布式存储框架支持 HDFS、HBase,分布式计算框架支持 Spark,支持版本:
- Apache Hadoop 2.7.x ~ 3.1.x,集群部署请参考 Apache Hadoop。
- Apache Spark 2.3.2 ~ 2.3.4,集群部署请参考 Apache Spark。
- 除了 HDFS,也可以选择使用 HBase 进行数据存储,支持配置 Apache HBase 1.2~1.4 环境,安装方法参照Apache HBase。
集群环境的使用
在 iServer 处理自动化(WebUI) 和 iDesktopX 处理自动化建模界面中使用大数据工具时,我们可以在每个工具的参数设置中,找到 环境 选项卡,设置分布式集群信息。连接集群的相关参数有:
- master:必填参数,集群 master 地址,单机使用请填写 local[K](K代表使用线程数,*代表本机核数),使用集群请填写集群 master 地址,如 spark://127.0.0.1:7077。
- appName:必填参数,自定义应用程序名称,如 processing。
-
settings:使用集群需进行 Spark 属性参数设置,设置格式为 key1=value1, key2=value2,常用参数有:
- spark.cores.max=8,集群使用的总核数。
- spark.executor.memory=32G,每个 executor 使用的内存量,默认1G。
- spark.driver.maxResultSize=1G,所有分区序列化结果的最大值,0表示无限制。
- spark.memory.fraction=1,预留用于执行和存储的内存部分。
- spark.driver.cores=1,用于驱动程序进程的内核数,需要注意的是,在Client模式下该参数无法生效。
- spark.driver.port=8080,用于驱动程序进程的端口,需要注意的是,在Client模式下该参数无法生效。
- spark.driver.memroy=5G,驱动程序使用的内存量,默认1G。在写出数据到本地时,如果数据量过大,报错java.lang.OutOfMemoryError,可尝试增大该值。需要注意的是,在Client模式下该参数无法生效。
- spark.blockManager.port=8080,用于块管理器的端口,存在于驱动程序和执行器上。
- spark.network.timeout=120s,所有网络交互的默认超时时长。
- spark.worker.timeout=60s,每个 worker 连接超时的时长,超过该时长判断为丢失。
更多 Spark 集群的参数设置请参考 Spark Configuration。
Spark 应用程序部署模式的说明
Spark 应用程序部署模式(deployMode)支持两种方式:client 和 cluster。自 SuperMap iServer 10i(2021) 版本起,iServer SuperMap 处理自动化模块新增支持 cluster 模式,并需要设置环境参数 spark.submit.deployMode=cluster,否则将默认为 client 模式。
cluster 模式与 client 模式对比:
cluster 模式 | client 模式 |
---|---|
Driver 在集群的节点上同时运行,不占用 iServer 节点的计算资源,但无法直接访问 iServer 节点上的文件,通常使用数据库型数据源或共享目录的方式实现多节点数据的同步访问,能够最大限度的利用集群。 | Driver 运行于 iServer 所在的服务器,可以访问 iServer 服务器上的本地文件,包括 UDB、UDBX 等,但需排队执行任务,存在延迟。 |
cluster 模式下的环境参数设置:
参数名称 | 参数说明 | 示例 |
---|---|---|
spark.rest.url.port (必填) |
rest url 为非命令行下用代码在 spark 集群提交 cluster 模式任务的 API,可在 spark web UI 中查找。 | spark.rest.url.port=6066 |
gp.hdfs.url (必填) |
提供一个 hdfs 目录,作为临时存放 jar 文件和模型的目录。 | gp.hdfs.url=hdfs://127.0.0.1:9000/up |
spark.web.ui.port | spark 的 web UI 页面的端口,默认端口为8080。 | spark.web.ui.port=8080 |
client 模式下的环境参数设置:
参数名称 | 参数说明 | 示例 |
---|---|---|
spark.driver.host | 在双网卡环境下、本机与集群 IP 不一致环境下,需设置该参数,否则可能出现找不到 master 的问题,一般填写 iServer 所在服务器地址。 | spark.driver.host=127.0.0.1 |
注意:Client 模式下所有参数的修改,均需重启 spark 任务才会生效。
重启步骤:
- 通过 Spark 的 WebUI(http://{ip}:8080)查看并关闭任务。
- 返回处理自动化建模页面执行模型,修改参数即可生效。
iServer 的配置项
为了更灵活地使用集群和 python 工具,在 iServer 产品中,修改 iServer 安装路径下 /webapps/iserver/WEB-INF/iserver-geoprocessing.xml 文件,可以修改处理自动化服务的相关配置:
- (xmx):处理自动化服务的最大可用内存,默认为物理内存的1/4。
- port:处理自动化(WebUI)启动端口,默认端口号8097。
- clusterRPCPort:处理自动化服务以 Spark Cluster Mode 集群模式运行模型时,用于与远程 spark driver 进程通讯,实时获取 spark 任务的执行状态,了解工具的执行进度。默认端口号18098。
- clusterRPCServerIP:设置处理自动化服务所绑定的 IP 地址,远程 spark driver 进程会与该 IP 通讯。默认绑定服务所在机器的第一个网卡的 IP,多网卡时可以设置其中一个,确保远程的 Spark driver 进程能与该 IP 互通。
- maxConnection:指定在 cluster 模式下使用集群的最大连接数限制,默认50。
- connectionRequestTimeout:从连接池获取连接的超时时间,默认3000毫秒。
- pythonSocketPort:处理自动化服务调用 Python 工具时,会单独给 Python 启动一个进程,该端口用于处理自动化服务进程与 Python 进程间进行通讯,默认端口号18099。