开发者社区 > 博文 > GeoMesa-HBase操作篇——安装
分享
  • 打开微信扫码分享

  • 点击前往QQ分享

  • 点击前往微博分享

  • 点击复制链接

GeoMesa-HBase操作篇——安装

  • 京东城市JUST团队
  • 2021-01-22
  • IP归属:未知
  • 33120浏览

1. 前期准备

在安装GeoMesa-Hbase之前,要保证服务器上已经正确安装JDK、Hadoop、Hbase等组件,具体版本要求如下:

  1. Java JDK 1.8
  2. Apache Maven 3.5.2 或更新版本
  3. Github客户端
  4. Hadoop 2.7.x(建议)
  5. Hbase 1.3.x 或者1.4.x

2. 下载和解压

下载方式有两种,可以直接从Github上面下载已经编译好的二进制文件,也可以下载后利用maven进行编译

2.1 下载后直接解压

从Github下载已经编译好的二进制文件,解压至目标目录($VERSION是你想要下载的版本,我测试成功的是2.1.0)。需要指出的是,geomesa往往有两个版本号,前面的2.11其实是它支持的scala的版本号,后面的才是它本身的版本号。

  1. # download and unpackage the most recent distribution:
  2. wget "https://github.com/locationtech/geomesa/releases/download/geomesa_2.11-$VERSION/geomesa-hbase-dist_2.11-$VERSION-bin.tar.gz"
  3. tar -xvf geomesa-hbase-dist_2.11-$VERSION-bin.tar.gz
  4. cd geomesa-hbase-dist_2.11-$VERSION
  5. ls
  6. bin/ conf/ dist/ docs/ examples/ lib/ LICENSE.txt logs/

 2.2 下载后源码编译

由于考虑到日后需要基于GeoMesa进行二次开发,也可以采用编译GeoMesa源代码的方式。

下载geomesa源码(VERSION是你想要的版本)

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

进入geomesa的根目录然后进行编译

mvn clean install -DskipTests=true 

编译成功后,GeoMesa HBase的完整安装包位于geomesa-hbase\geomesa-hbase-dist\target目录下解压

sudo tar -xvf geomesa-hbase_2.11-$VERSION-SNAPSHOT-bin.tar.gz /home/software  

修改权限

sudo chown -R xxx:hadoop /usr/local/geomesa-hbase_2.11-$VERSION-SNAPSHOT  

拷贝到其他机器上

sudo scp  -r /usr/local/geomesa-hbase_2.11-$VERSION-SNAPSHOT root@192.168.100.92:/usr/local/

3. 修改配置信息

为了程序的正常运行和操作方便,建议配置Hadoop、Hbase、GeoMesa-Hbase的环境变量。下述三种方式都可以。

3.1 在/etc/profile文件中配置(主要是为了操作方便)

将下列环境变量添加在profile文件当中。

  1. export HADOOP_HOME=/path/to/hadoop
  2. export HBASE_HOME=/path/to/hbase
  3. export GEOMESA_HBASE_HOME=/opt/geomesa
  4. export PATH="${PATH}:${GEOMESA_HBASE_HOME}/bin"

五星重点:在此配置GeoMesa的环境变量一定要用GEOMESA_HBASE_HOME,在官方文档中记载需要用“GEOMESA_HOME”,但是这个是错的,应该是“GEOMESA_HBASE_HOME”。

应用配置文件。

source /etc/profile  

由于许可的原因,需要在geomesa根目录下手动执行以下两个命令,安装两个插件。

  1. bin/install-jai.sh
  2. bin/install-jline.sh

3.2 在GeoMesa本身的环境变量中设置

GeoMesa 推荐在geomesa-hbase_2.11-$VERSION/conf/geomesa-env.sh文件中设置以上环境变量 。

  1. export HADOOP_HOME=/path/to/hadoop
  2. export HBASE_HOME=/path/to/hbase
  3. export GEOMESA_HBASE_HOME=/opt/geomesa
  4. export PATH="${PATH}:${GEOMESA_HBASE_HOME}/bin"

3.3 在外部环境中配置环境变量

修改.bashrc

sudo vim .bashrc   

添加环境变量

  1. export HADOOP_HOME=/path/to/hadoop
  2. export HBASE_HOME=/path/to/hbase
  3. export GEOMESA_HBASE_HOME=/opt/geomesa
  4. export PATH="${PATH}:${GEOMESA_HBASE_HOME}/bin"

由于许可的原因,需要在geomesa根目录下手动执行以下两个命令,安装两个插件。

  1. bin/install-jai.sh
  2. bin/install-jline.sh

4. 部署GeoMesa-HBase分布式运行jar

GeoMesa for HBase需要使用本地过滤器来加速查询,因此需要将GeoMesa的runtime JAR包,拷贝到HBase的库目录下。

官网给的默认设置是拷贝至HDFS中,其中${hbase.dynamic.jars.dir}是${hbase.rootdir}/lib

hadoop fs -put ${GEOMESA_HBASE_HOME}/dist/hbase/geomesa-hbase-distributed-runtime-$VERSION.jar ${hbase.dynamic.jars.dir}/  

注意:如果是分布式环境,需要将其复制到每一个节点。

GeoMesa使用HBase自定义过滤器来改进CQL查询的处理。要使用自定义筛选器,必须将分布式运行时jar部署到HBase,并将其部署到由调用的HBase配置变量指定的目录中 将/dist/hbase/geomesa-hbase-distributed-runtime_2.11-2.1.0-SNAPSHOT.jar拷贝到${HBase_HOME}/lib目录下。

cp /home/software/geomesa-hbase_2.11-$VERSION-SNAPSHOT/dist/hbase/geomesa-hbase-distributed-runtime_2.11-$VERSION-SNAPSHOT.jar /home/software/hbase-1.3.3/lib/ 

注意:此处还需要把geomesa-hbase-distributed-runtime_2.11-2.1.0-SNAPSHOT.jar 拷贝到/tmp/hbase-${usr}/hbase/lib/下(这个目录可能不存在,我是通过自己创建目录解决的),并且每个机器都要这样做,运行时会找这个jar包的。这个地方在其它资料里都没提到,但很重要。

cp /home/software/geomesa-hbase_2.11-$VERSION-SNAPSHOT/dist/hbase/geomesa-hbase-distributed-runtime_2.11-$VERSION-SNAPSHOT.jar /tmp/hbase-root/hbase/lib/  

5. 注册协处理器

GeoMesa利用服务器端处理来加速某些查询。为了利用这些功能,GeoMesa协处理器必须在所有GeoMesa表上注册或在站点范围内注册,并且geomesa-hbase-distributed-runtime代码必须在类路径或HDFS URL上可用,具体取决于所使用的注册方法。

为了使HBase在运行时能够访问到geomesa-hbase-distributed-runtime的jar包。官网给出了几种方法实现这一目标,最方便的是在HBase的配置文件hbase-site.xml添加如下内容:

  1. <property>
  2. <name>hbase.coprocessor.user.region.classes</name>
  3. <value>org.locationtech.geomesa.hbase.coprocessor.GeoMesaCoprocessor</value>
  4. </property>

注意如果是分布式环境,需要在每一个节点都添加相同的内容。

官方文档提供的其他几种方法参考https://www.geomesa.org/documentation/user/hbase/install.html

6. 设置命令行工具

在完成以上设置后,GeoMesa的主要部分就安装完成了。可以使用 bin/geomesa-hbase命令调用GeoMesa的命令行工具,执行一系列的功能。

这里要额外设置的是使用如下命令,将HBase配置文件hbase-site.xml打包进geomesa-hbase-datastore_2.11-$VERSION.jar中:

zip -r lib/geomesa-hbase-datastore_2.11-$VERSION.jar hbase-site.xml  

这个过程一般无法100%执行完成,不过不用担心,

这一步的目的是确保在MapReduce任务中,GeoMesa能够顺利访问到该文件。

在这个过程当中,可能出现不能百分百执行完的情况,这是因为geomesa-hbase本身不能涵盖所有功能,因此不必担心。

7. 执行测试

重新启动zookeeper、hadoop、hbase,然后查看geomesa-hbase的版本

geomesa-hbase version   

得到版本信息,标志着geomesa-hbase已经安装成功

  1. GeoMesa tools version: 2.1.0-SNAPSHOT
  2. Commit ID: 72ace4b8499fa0958a85a7b424f1fde47c446049
  3. Branch: master
  4. Build date: 2018-09-05T23:21:35-0400
共0条评论