Run Python Script task 是ArcGIS GA Server 10.7提供的一项新功能,让GA的分析能力从封闭走向开放,通过Run Python Script工具你可以直接调用PySpark库,也可以基于当下流行的机器学习库实现空间大数据的智能分析,可以说这是一项相当激动人心的突破。美中不足的是在GA for Linux平台上,需要用户手动配置GA依赖的python库,这篇配置短文希望能帮到你更快上手。
一 安装Python 包
1,官网下载安装包
下载地址:https://www.python.org/downloads/source/
在文章写的当下,python最新的稳定版本是3.7.3,更新时间是2019年3月25日。
For linux版本需要下载源码包自行编译,这里我测试下载了Gzipped source tarball。
2,安装依赖包
1 | [root@gis088 home] |
3,编译python包
- 进入tar包所在目录,解压缩tar包
1 | [root@gis088 home] |
- 编译python库到/usr/local/python3
1 | [root@gis088 Python-3.7.3]# mkdir target |
最终我们用到的python库位于/usr/local/python3。
二 部署Python包到GA Server
在GA集群环境下,为了让每台GA 在执行任务时都能访问到python库,还需要拷贝上面编译好的python库到每台GA服务器,确保python 路径在所有服务器上保持一致。
在我的测试环境中GA集群中共有三台服务器:39,40,41,现在通过scp命令拷贝编译好的文件到所有GA服务器的/usr/local/python3目录:
1 | [root@gis088 local] |
三 更新Server属性
更新Server属性,让Server能正确识别Python库。
- 浏览器中打开Server 管理目录,并以管理员身份登陆
目录格式:https://server:port/arcgis/admin
我的测试样例:https://gis039.esri.local/arcgis/admin
- 导航到system/properties页面
https://gis039.esri.local/arcgis/admin/system/properties,
- 添加属性
{“pysparkPython”:"/usr/local/python3/bin/python3"}
四 验证
现在我们通过Run python script工具来验证前面部署的python库是否成功。
- 以管理员身份,登陆GA所在的Server REST 服务目录
例如:https://gis039.esri.local/arcgis/rest/services>
- 按照System->GeoAnalyticsTools->RunPythonScript->Submit Job步骤,打开Run python script Summit Job页面
- 在Python Script 窗口输入print(“hello world!”)
- 点击Sumbit Job按钮(get or post都可以),提交请求。
如果你能看到任务成功执行,那就说明之前的部署生效啦。事实上在日志中已经打印出来GA实际使用的python库。