GeoMesa源码编译

前言

1、参考:GeoMesa官方英文文档:https://www.geomesa.org/documentation/developer/introduction.html

2、本篇介绍了如何编译GeoMesa源码,即官方文档中所谓的从源码构建GeoMesa,以及对GeoMesa工程的组成架构进行概述,为后期的开发做准备。

3、GeoMesa的源码工程是用Apache Maven构建的。如果你对Maven不熟悉,就编译GeoMesa的源码而言,暂时无需对Maven了解太多,只需知道它是一个项目管理和构建自动化工具就可以了。如果想要比较深入地了解Maven,可以参考以下网址:
1)Maven in 5 Minutes:https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
2)George Ma的技术文章:https://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-1-406235-zhs.html

4、大家如有任何疑问或赐教,可在下方留言,或关注笔者(小木君,“木之野火”,ID“m0_37287361”)的博客,笔者的QQ(648836477)。如果我们能就某个问题或话题进行讨论,对笔者而言将是非常棒的事情。笔者开博不久,志在精品。希望博文能对大家有益。感谢大家的支持与鼓励。
编译

1、编译 & 开发工具(包)下载
工具包     下载地址
JDK8     https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Maven >= 3.5.2     http://maven.apache.org/download.cgi
Git(可选)     https://www.git-scm.com/download/
GeoMesa源码     https://www.git-scm.com/download/

2、CentOS安装JDK8
1)JDK8其实就是JDK1.8,安装教程网上有很多,这里不再赘述,推荐一篇很详细的博客:
陈南志的博客:https://blog.csdn.net/pucao_cug/article/details/68948639
2)提一点注意事项:该博客使用的JDK版本(Linux下)是jdk-8u121-linux-x64.tar.gz,如果你使用的是其它版本,例如笔者使用的是jdk-8u171-linux-x64.tar.gz,而截至此博客撰写日期,JDK最新版本为jdk-8u191-linux-x64.tar.gz。因此,需要将版本替换为你使用的版本。

3、CentOS安装Maven
1)将步骤1中下载的Maven安装包解压到某个路径下。笔者的解压位置是/usr/local,Maven版本为3.5.4,解压后全路径为:/usr/local/apache-maven-3.5.4/
2)命令行中键入:vim /etc/profile ,按下键盘的i(插入模式),添加如下内容:

export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export MAVEN_OPTS=-"Xms512m -Xmx512m"
export PATH=$PATH:${MAVEN_HOME}/bin

继续键入: :wq,保存退出。
3)使配置生效:
命令行中键入:source /etc/profile
4)检验:
命令行中键入:mvn -v 输入类似以下内容证明Maven安装成功(不同的系统输出可能不同):
在这里插入图片描述

在这里插入图片描述

4、下载GeoMesa源码
上述步骤1中,Git工具标记为可选,原因就是GeoMesa源码的下载方法有两种:
方法1:使用Git工具。需要在电脑上安装Git,Git下载的网址参见步骤1的表格。
装好后,对于Windows用户:在某个路径下新建一个文件夹,命名为“geomesa”,然后在geomesa文件夹上右键,选择“Git Clone”,URL输入:https://github.com/locationtech/geomesa ,即可下载最新的GeoMesa源码;对于Linux用户:装好Git后,切换到创建好的某个文件夹中,如笔者的文件夹为/opt/geomesa,在当前路径打开终端,输入:

git clone https://github.com/locationtech/geomesa.git 

即可下载最新的GeoMesa源码。
方法2:如要下载最新版本源码,直接打开网址:https://github.com/locationtech/geomesa.git ,点击“Clone or download”即可下载(如下图红框);

在这里插入图片描述
在这里插入图片描述
如要下载其它历史版本的源码,直接打开网址:https://github.com/locationtech/geomesa/releases,然后点击下图所示的图标即可跳转到指定版本的下载页面,然后同上,点击“Clone or download”即可下载。

在这里插入图片描述
在这里插入图片描述
源码下载完成后,解压到指定路径即可。

5、编译GeoMesa源码
下载GeoMesa的源码后,在GeoMesa的根目录下可以看到一个pom.xml文件,其中包含了GeoMesa源码工程的各个子模块的依赖库。打开命令行,切换到GeoMesa源码的根目录,如笔者的/opt/geomesa/geomesa-geomesa_2.11-2.0.2,执行编译命令:

 mvn clean install -DskipTests

其中的-DskipTests参数表示省略编译过程中的测试阶段,目的是减少编译时间。如果要进行带验证的编译,命令行中键入如下命令:

mvn clean install

编译过程中会存在卡顿不动的情况,这时可以多等待一会儿。如果发现很长时间不动,让你已然焦躁,可以按下Ctrl+c强制中断后,从头再来,多编译几次总会成功。
GeoMesa工程的组成架构

    geomesa-accumulo模块:对Apache Accumulo的DataStore实现,使用方法:在geomesa-accumulo中注册/创建DataStore,然后使用此DataStore即可存储数据,下同
    geomesa-archetypes模块: GeoMesa的Maven构建模板
    geomesa-arrow模块:对Apache Arrow的集成以及DataStore实现
    geomesa-bigtable模块:对Google Bigtable的DataStore实现
    geomesa-blobstore模块:由Accumulo支持的面向大文件存储的DataStore实现,这些大文件一般有关联的时空数据
    geomesa-cassandra模块:对Apache Cassandra的DataStore实现
    geomesa-convert模块:支持将任意类型的数据转换为GeoTools的SimpleFeature类型的可配置和可扩展库
    geomesa-features模块:支持SimpleFeatures的自定义实现和序列化
    geomesa-filter模块:用于操作和使用GeoTools Filter的库
    geomesa-fs模块:对flat files的DataStore实现
    geomesa-geojson模块:直接操作GeoJSON的API和REST-ful网络服务接口
    geomesa-hbase模块:对Apache Hbase的DataStore实现
    geomesa-index-api模块:空间索引和数据存储的核心类库
    geomesa-jobs模块:集成Map/reduce
    geomesa-jupyter模块:集成交互式笔记本Jupyter notebook
    geomesa-kafka模块:对Apache Kafka的DataStore实现,用于处理近实时的流式数据
    geomesa-lambda模块:实现Apache Kafka与Apache Accumulo的无缝集成, 其中Apache Kafka用于处理频繁的数据更新,Apache Accumulo用于持久化存储
    geomesa-memory模块:集成系统监控工具DropWizard metrics 的可扩展和可配置库
    geomesa-native-api模块:Apache Accumulo中用于持久化存储与查询数据的非GeoTools接口
    geomesa-process模块:优化的GeoMesa空间分析流程
    geomesa-security模块:GeoMesa中用于处理安全与认证的接口
    geomesa-spark模块:对Apache Spark的DataStore实现
    geomesa-stream模块:从任意URL读取features的DataStore实现
    geomesa-test模块:集成了测试脚本
    geomesa-tools模块:GeoMesa提供的用于导入、查询和管理数据的命令行工具
    geomesa-utils模块:通用工具的代码模块
    geomesa-web模块:集成到GeoMesa的REST-ful网络服务接口
    geomesa-z3模块:实现Z3空间填充曲线
    geomesa-zk-utils模块:Zookeeper工具代码
--------------------- 
作者:木之野火 
来源:CSDN 
原文:https://blog.csdn.net/m0_37287361/article/details/83616898 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/u011596455/article/details/85870720