iObjects for Spark- Docker安装攻略

原创
2016/10/25 13:32
阅读数 410

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

iObjects for Spark时空大数据分析引擎支持基于虚拟机或Docker的快速部署,从而可以在云计算基础设施中统一管理和按需运行。在【iObjects for Spark-时空大数据分析引擎】中介绍了iObjects for Spark的安装和使用方法,这里我们将其安装到Docker中,创建自己的Docker镜像,从而可以在分布式环境中快速部署。

1. 安装支持环境

1.1 安装Docker容器支持环境

我用的Mac OS X,现在的Docker已经原生支持了,不用像以前要安装VirtualBox,再使用Vagrant了。   到这里http://www.docker.io下载相应的版本,然后运行安装程序,就可以了。

如果使用Ubuntu,建议使用 http://get.docker.io下载的脚本进行安装,官方的安装方法貌似与Ubuntu内置的lxd有冲突,经常出问题。方法如下:

wget http://get.docker.io -O docker-setup.sh
sudo chmod +x docker-setup.sh
./docker-setup.sh

1.2 安装Jupyter Notebook容器

采用Jupyter的官方Docker技术栈


docker pull jupyter/all-spark-notebook

1.3 创建主机的本地目录


mkdir Docker

cd Docker

mkdir GISpark

cd GISpark

1.4 获取iObjects的代码

注意,目前该代码库尚未开放,感兴趣的请联系超图软件研究院。


git clone https://git.oschina.net/supermap/iobjects2016.git

1.5 运行容器实例

docker run -it --name GISpark 
    -p 9000:8888 
    --user root -e GRANT_SUDO=yes 
    -v ~/Docker/GISpark:/home/jovyan/work/GISpark 
    jupyter/all-spark-notebook

打开浏览器,输入:http://localhost:9000。

1.6 安装和更新容器内软件

sudo apt update
sudo apt upgrade

sudo apt install mvn

2. 编译和安装iObjects for Spark

2.1 编译

使用maven进行编译,所有的依赖包将自动下载。如下:

cd iobjects2016
mvn package

2.2 配置环境

在安装完 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 的docker镜像配置为Spark的集群节点,然后通过Spark进行调用。关于集群的配置,再下一篇Blog中再行讲述。

3. 使用iObjects for Spark

  • 构建缓存(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

更多的用法参考:【iObjects for Spark-时空大数据分析引擎】。

展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部