Apache Spark是功能强大的分布式并行计算平台。iObject for Spark是全球首个面向Spark的时空大数据分析引擎,经过将专业GIS组件引入Spark环境中运行,极大扩充了Spark的能力,使其具有了专业级的空间数据处理、空间分析和专题制图的功能,既方便了使用Spark的大数据分析专家,也为专业GIS领域应用提供了强大的分布式并行处理能力。html
iObjects for Spark时空大数据分析引擎是SuperMap iObjects的Spark版本,直接将GIS的专业级功能带到了Spark分布式并行计算环境中。目前其它的一些方案,都只能在Spark中实现很是有限的空间数据处理功能,Spark的处理结果和专业GIS系统之间是分离的,两者协同工做须要进行大量耗费时间和存储空间的数据转换工做,才能将结果用于GIS系统进行后续的查询、制图等处理,这类传统GIS系统自己不支持并行计算,只是提交计算任务,更没法将其用于流式数据处理。java
iObjects for Spark时空大数据分析引擎能够帮助使用者进行高效的时空大数据分析,它既能够做为Apache Spark项目在时空数据领域的扩展模块,为软件开发人员服务,也能够做为一个开箱即用的时空大数据分析工具包,为数据分析人员服务。web
iObjects for Spark时空大数据分析引擎支持基于虚拟机或Docker的快速部署【参见:iObjects for Spark- Docker安装攻略】,从而能够在云计算基础设施中统一管理和按需运行。mongodb
项目的每日构建版本(iobjects-spark-0.1.0.jar)会被发布到[研发内网Maven库]。项目后续版本趋于稳定后,会被发布到超图官方Maven库,敬请关注哦!apache
所以,开发人员能够经过添加pom文件依赖项的方式进行使用:ubuntu
<dependency> <groupId>com.supermap</groupId> <artifactId>com.supermap.spark</artifactId> <version>0.1.0</version> </dependency>
因为咱们提供pom文件,你能够在项目根目录下直接使用Maven命令进行打包:缓存
mvn package
打包成功后,你能够在target目录下获取 iobjects-spark-0.1.0.jar 将该包加入到你的项目依赖中,就能够基于GISpark提供的相关API进行开发了oracle
Apache Hadoop 集群部署请参考 Apache Hadoopless
Apache Spark 集群部署请参考 Apache Sparkmaven
SuperMap iObjects Java 安装请参考 SuperMap iObjects
配置 Apache Spark 集群
在安装完 SuperMap iObjects Java 组件后,须要将 SuperMap iObjects Java 组件的 Bin 目录路径设置到 spark-env.h
的 LD_LIBRARY_PATH
中:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${SUPERMAP_HOME}/Bin
同时,咱们须要设置 iobjects-spark-0.1.0.jar 到 SPARK_CLASSPATH
中:
export SPARK_CLASSPATH=$SPARK_CLASSPATH:${SUPERMAP_HOME}/Bin/iobjects-spark-0.1.0.jar
在Spark 1.0+ 版本,SPARK_CLASSPATH
再也不被推荐使用,能够在 spark-submit
提交做业时使用--driver-class-path
来设定程序驱动端的Java类路径,同时,使用spark.executor.extraClassPath
设定做业执行端的Java类库路径
值得注意的是,若是使用 OracleJDK 进行程序开发,须要使用 SuperMap iObjects Java Home/Bin 目录下的 libmawt.so 文件替换 $JRE_HOME/lib/amd64/headless 目录下的 libmawt.so 文件,并同步修改集群中全部节点
完成 SuperMap iObjects Java 部署后,咱们须要将 SuperMap iObjects Java 分发到集群中全部节点, 并将修改的 spark-env.sh
也同步到集群中全部节点
环境配置完成后,你就能够直接使用 spark-submit
命名来提交你的GISpark做业(Jobs)
支持类型包括点数据渲染图,点数据热度图,缓存结果能够写入HDFS中,也能够写入mongoDB中 在使用mongoDB做为缓存存储时,地图名称在--output参数中给出 若是结果存储在本地,则经过--name参数给出 BuildCache参数列表
usage: BuildCache |--input input path |--bounds left,right,bottom,top |--level levecount (default 3) |--output path or mongo connection info ( ip:27017,Database,CacheName,VersionAlias) |--type basic or heatmap |--name cacheName |--help
bin/spark-submit --class com.supermap.spark.main.Main \ --master spark://master:7077 iobjects-spark-0.1.0.jar BuildCache \ --input hdfs://controller:9000/date/tripsplit/2013/2013-01-01-0-12 \ --bounds -74.150,40.550,-73.750,40.950 \ --level 6 \ --output hdfs://controller:9000/cache/trip01_1 \ --type basic --name tripPoints
bin/spark-submit --class com.supermap.spark.main.Main \ --master spark://master:7077 iobjects-spark-0.1.0.jar Buildcache \ --input hdfs://controller:9000/date/tripsplit/2013/2013-01-01-0-12 \ --bounds -74.050,40.650,-73.850,40.850 \ --level 6 \ --output 192.168.14.2:27017,test4M1,test1,V1 \ --type basic
bin/spark-submit --class com.supermap.spark.main.Main \ --master spark://master:7077 iobjects-spark-0.1.0.jar BuildCache \ --input hdfs://controller:9000/date/tripsplit/2013/2013-01-01-0-12 \ --bounds -74.050,40.650,-73.850,40.850 \ --level 3 --output /cache \ --type heatmap \ --name heatmap0101
bin/spark-submit --class com.supermap.spark.main.Main \ --master spark://master:7077 iobjects-spark-0.1.0.jar Buildcache \ --input hdfs://controller:9000/date/tripsplit/2013/2013-01-01-0-12 \ --bounds -74.050,40.650,-73.850,40.850 \ --level 6 \ --output 192.168.14.2:27017,test4M1,test1_heat,V1 \ --type heatmap
经过mongoDB存储的缓存数据能够直接经过iServer发布,测试结果地址以下:
支持点数据的核密度分析,结果为.grd格式栅格文件,可在iDesktop中导入为栅格数据集 KernelDensity参数列表。
usage: KernelDensity |--input input path |--geoidx geometry index for input data (default 0) |--separator field separator (default ,) |--query query window in format of left,bottom,right,top |--resolution resolution of result grid (default 0.001) |--radius radius for search (default 0.01) |--output output .grd file path |--part partition number (default 0) |--multi true or false, multi level or single level (default false) |--help
bin/spark-submit --class com.supermap.spark.main.KernelDensity \ --master spark://master:7077 iobjects-spark-0.1.0.jar \ --input data/analyst/trip_data_1_sample_14k.csv --geoidx 10 \ --separator , \ --query -74.150,40.550,-73.750,40.950 \ --resolution 0.0004 \ --radius 0.004 \ --output KernelDensityResult
0.1.0(M1) - 2016-08-05