文档章节

iObjects for Spark-时空大数据分析引擎

openthings
 openthings
发布于 2016/08/19 10:04
字数 1927
阅读 1193
收藏 1

Spark的时空大数据分析引擎

Apache Spark是功能强大的分布式并行计算平台。iObject for Spark是全球首个面向Spark的时空大数据分析引擎,通过将专业GIS组件引入Spark环境中运行,极大扩充了Spark的能力,使其具备了专业级的空间数据处理、空间分析和专题制图的功能,既方便了使用Spark的大数据分析专家,也为专业GIS领域应用提供了强大的分布式并行处理能力。

1. 简介

iObjects for Spark时空大数据分析引擎是SuperMap iObjects的Spark版本,直接将GIS的专业级功能带到了Spark分布式并行计算环境中。目前其它的一些方案,都只能在Spark中实现非常有限的空间数据处理功能,Spark的处理结果和专业GIS系统之间是分离的,二者协同工作需要进行大量耗费时间和存储空间的数据转换工作,才能将结果用于GIS系统进行后续的查询、制图等处理,这类传统GIS系统本身不支持并行计算,只是提交计算任务,更无法将其用于流式数据处理。

iObjects for Spark时空大数据分析引擎可以帮助使用者进行高效的时空大数据分析,它既可以作为Apache Spark项目在时空数据领域的扩展模块,为软件开发人员服务,也可以作为一个开箱即用的时空大数据分析工具包,为数据分析人员服务。

iObjects for Spark时空大数据分析引擎支持基于虚拟机或Docker的快速部署【参见:iObjects for Spark- Docker安装攻略】,从而可以在云计算基础设施中统一管理和按需运行。

2. 开发和测试环境(M1版本)

3. 项目特性

  • 数据格式:CSV,WKT,WKB,GeoJSON,...
  • 几何对象类型:点,线,面,矩形,...
  • 空间判定:包含,相交,覆盖,穿越,接触,相离,同一,共线,共点,平行,左右,...
  • 空间操作:裁剪,擦除,相交,合并,更新,同一,对称差.
  • 空间运算:凸包,重采样,光滑,空间距离,...
  • 空间索引:格网索引,四叉树索引,R树索引
  • 空间数据组织:要素(Feature),要素集合(FeatureSet)
  • 功能:构建索引(BuildIndex),生成缓存(BuildCache),范围查询(QueryIndex),核密度分析(KernelDensity)

4. 使用说明

4.1软件开发人员

4.1.1 Maven方式

项目的每日构建版本(iobjects-spark-0.1.0.jar)会被发布到[研发内网Maven库]。项目后续版本趋于稳定后,会被发布到超图官方Maven库,敬请关注哦!

因此,开发人员可以通过添加pom文件依赖项的方式进行使用:

<dependency>
    <groupId>com.supermap</groupId>
    <artifactId>com.supermap.spark</artifactId>
    <version>0.1.0</version>
</dependency>

4.1.2 包依赖方式

由于我们提供pom文件,你可以在项目根目录下直接使用Maven命令进行打包:

    mvn package

打包成功后,你可以在target目录下获取 iobjects-spark-0.1.0.jar 将该包加入到你的项目依赖中,就可以基于GISpark提供的相关API进行开发了

4.2.数据分析人员

4.2.1 配置环境

  • Apache Hadoop 集群部署请参考 Apache Hadoop

  • Apache Spark 集群部署请参考 Apache Spark

  • SuperMap iObjects Java 安装请参考 SuperMap iObjects

  • 配置 Apache Spark 集群

    在安装完 SuperMap iObjects Java 组件后,需要将 SuperMap iObjects Java 组件的 Bin 目录路径设置到 spark-env.hLD_LIBRARY_PATH 中:

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${SUPERMAP_HOME}/Bin

    同时,我们需要设置 iobjects-spark-0.1.0.jarSPARK_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 也同步到集群中所有节点

4.2.2 运行作业

环境配置完成后,你就可以直接使用 spark-submit 命名来提交你的GISpark作业(Jobs)

4.2.3 构建缓存(BuildCache)

支持类型包括点数据渲染图,点数据热度图,缓存结果可以写入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

4.2.4 生成点数据渲染图,并把结果写到HDFS中

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

4.2.5 生成点数据渲染图,并把结果写到mongoDB缓存的V1版本

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

4.2.6 生成点数据热度图,并把结果写到HDFS中

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

4.2.7 生成点数据热度图,并把结果写到mongoDB缓存的V1版本

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发布,测试结果地址如下:

4.2.8 核密度分析(KernelDensity)

支持点数据的核密度分析,结果为.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

4.2.9 生成点数据核密度分析结果,并把结果保存为.grd文件

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

5. 版本历史

0.1.0(M1) - 2016-08-05

6.后续计划

  • 项目研发流程梳理与优化(持续发布,Git使用规范与工作流程制定,自动化测试案例补充...)
  • 支持 Spark SQL 中的 DataFrame/DataSet
  • 时空大数据存储方案(矢量数据,影像数据,实时数据,空间索引...)
  • 更多空间分析功能支持(空间查询,空间连接,临近搜索,空间统计,抽稀,聚类...)
  • Spark 2.0 版本新特性研究与对接

© 著作权归作者所有

openthings

openthings

粉丝 328
博文 1155
码字总数 851078
作品 1
东城
架构师
私信 提问
加载中

评论(2)

g
geowangsh
卓越的工作!
openthings
openthings 博主
卓越的工作!
阿里云HBase Ganos全新升级,推空间、时空、遥感一体化基础云服务

1、HBase Ganos是什么 Ganos是阿里云时空PaaS服务的自研核心引擎。Ganos已作为云数据库时空引擎与数据库平台融合,建立了以自研云原生数据库POALRDB为基础,联合NoSQL大数据平台(Ali-HBASE...

Mr_zebra
09/11
25
0
Apache Spark3.0什么样?一文读懂Apache Spark最新技术发展与展望

2019阿里云峰会·上海开发者大会于7月24日盛大开幕,在本次峰会的开源大数据专场上,阿里巴巴高级技术专家李呈祥带来了《Apache Spark 最新技术发展和3.0+ 展望》的全面解析,为大家介绍了S...

EMR
08/02
0
0
SequoiaDB x Spark 新主流架构引领企业级应用

6月,汇集当今大数据界精英的Spark Summit 2017盛大召开,Spark作为当今最炙手可热的大数据技术框架,向全世界展示了最新的技术成果、生态体系及未来发展规划。 巨杉作为业内领先的分布式数据...

巨杉数据库
2017/07/03
8
0
Hadoop大数据平台实战(04):Ubuntu 18.04实战安装Spark大数据引擎并统计字符

Spark是一个开源的高性能大数据分析引擎,在Hadoop生态系统中非常的重要组成部分,主要的作用就是分析处理大数据,Spark在大数据生态中的作用是替代之前的mapreduce引擎。Spark的性能测试表名...

徐雷frank
04/09
0
0
从Hadoop到Spark的架构实践

当下,Spark已经在国内得到了广泛的认可和支持:2014年,Spark Summit China在北京召开,场面火爆;同年,Spark Meetup在北京、上海、深圳和杭州四个城市举办,其中仅北京就成功举办了5次,内...

Emilypz
2015/10/10
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

02.日志系统:一条SQL更新语句是如何执行的?

我们还是从一个表的一条更新语句说起,我们创建下面一张表: create table T(ID int primary key, c int); 如果要将ID=2这一行c的值加1,SQL可以这么写: update T set c=c+1 where ID=2; 前...

scgaopan
今天
9
0
【五分钟系列】掌握vscode调试技巧

调试前端js 准备一个前端项目 index.html <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1......

aoping
今天
8
0
PhotoShop 高级应用:USM锐化/S锐化/防抖

、 高反差锐化+混合模式:叠加模式 【将更多的边缘细节添加到图像中】

东方墨天
今天
9
0
Python数据可视化之matplotlib

常用模块导入 import numpy as npimport matplotlibimport matplotlib.mlab as mlabimport matplotlib.pyplot as pltimport matplotlib.font_manager as fmfrom mpl_toolkits.mplot3d i......

松鼠大帝
昨天
7
0
我用Bash编写了一个扫雷游戏

我在编程教学方面不是专家,但当我想更好掌握某一样东西时,会试着找出让自己乐在其中的方法。比方说,当我想在 shell 编程方面更进一步时,我决定用 Bash 编写一个扫雷游戏来加以练习。 我在...

老孟的Linux私房菜
昨天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部