GeoMesa HBase 安装及问题解决:

(安装进程按官网行:http://www.geomesa.org/documentation/user/hbase/install.html)

一、安装
1.从GitHub上下载最新版GeoMesa HBase到cloud目录下并解压
2.配置环境变量(vi /etc/profie 及 GeoMesa HBase根目录下 vi conf/geomesa-env.sh)

export HADOOP_HOME=/path/to/hadoop
export HBASE_HOME=/path/to/hbase
export GEOMESA_HBASE_HOME=/opt/geomesa
export PATH="${PATH}:${GEOMESA_HBASE_HOME}/bin"

3.进入到${GEOMESA_HBASE_HOME},运行:

$ bin/install-jai.sh
$ bin/install-jline.sh

注:运行时出现:-bash: bin/install-jai.sh: Permission denied
解决方式:在bin目录下运行:chmod u+x install-jai.sh和chmod u+x install-jline.sh(修改权限)

4.GeoMesa使用HBase的自定义过滤器来执行CQL查询,为了允许GeoMesa使用过滤器,需要将{GEOMESA_HBASE_HOME}/dist/hbase/geomesa-hbase-distributed-runtime_2.11-2.0.0.jar拷贝到${HBase_HOME}/lib目录下

5.注册Coprocessors:
Geomesa使用HBase提供的coprocessor工具将处理过程移动到服务器端运行来提高查询效率,最简单的注册方式就是直接修改hbase-site.xml,增加以下内容:

<configuration>
  <property>
  <name>hbase.coprocessor.user.region.classes</name>
<value>org.locationtech.geomesa.hbase.coprocessor.GeoMesaCoprocessor</value>
</property>
</configuration>

6.最后运行 bin/geomesa-hbase configure 初始化Geomesa

二、测试(http://www.geomesa.org/documentation/tutorials/geomesa-quickstart-hbase.html)
1.在官网下载测试代码(示例程序):

$ git clone https://github.com/geomesa/geomesa-tutorials.git

2.下载完成后进行编译:
● $cd geomesa-tutorials
● $ mvn clean install -pl geomesa-quickstart-hbase
命令: mvn clean install -pl geomesa-tutorials-hbase/geomesa-tutorials-hbase-quickstart -am
(注:1.maven安装
(1)在maven官网(http://maven.apache.org/download.cgi)下载并解压到、opt/cloud下
tar zxvf apache-maven-3.5.3-bin.tar.gz -C /opt/maven
(2)配置环境变量(vi /etc/profile)
在profile中添加以下信息:

 export M2_HOME=/opt/cloud/apache-maven-3.5.3 
 export PATH=$PATH:$M2_HOME/bin

(3)通过执行下面命令刷新环境变量:source /etc/profile,安装完成
(4)验证:执行命令:mvn -version,如下所示
2. 编译出现以下问题:
在这里插入图片描述
缺少依赖项, 问题解决:
1、修改pom.xml ,将其中hadoop,hbase等等的版本改为与自己的之前所安装版本相匹配
2、将geomesa-tutorials-geomesa-tutorials-2.0.0 下的 geomesa-tutorials-common文件打包为jar文件到geomesa-tutorials-geomesa-tutorials-2.0.0 下
3、在http://mvnrepository.com/官网上下载guava-17.0.jar到/root/.m2/repository/com/google/guava/guava/17.0/目录下
4.成功运行: mvn clean install -pl geomesa-tutorials-hbase/geomesa-tutorials-hbase-quickstart -am
(注:这里必须是在geomesa-tutorials-geomesa-tutorials-2.0.0下执行 mvn clean install -pl geomesa-tutorials-hbase/geomesa-tutorials-hbase-quickstart -am;
而直接在geomesa-tutorials-hbase下执行mvn clean install -pl geomesa-tutorials-hbase-quickstart -am也会报错:
在这里插入图片描述

这是因为上面打包的geomesa-tutorials-common.jar文件放在了geomesa-tutorials-geomesa-tutorials-2.0.0目录下)
(注:在集群上,以上过程需在每个节点都执行,否则后面运行会报错:

在这里插入图片描述

3.编译成功后运行:
输入命令:

$ java -cp geomesa-tutorials -hbase / geomesa-tutorials-hbase-quickstart /target/gissa-    guides-hbase-startstart- $ VERSION .jar \org.geomesa.example.hbase.HBaseQuickStart \ 
    --hbase.zookeepers <zookeepers >            \
    --hbase.catalog <table>

这里在geomesa-tutorials-geomesa-tutorials-2.0.0下输入

java -cp geomesa-tutorials-hbase/geomesa-tutorials-hbase-quickstart/target/geomesa-tutorials-hbase-quickstart-2.0.0.jar  org.geomesa.example.hbase.HBaseQuickStart 
    --hbase.zookeepers cloud33     --hbase.catalog geomesa_hbase_table)

在这里插入图片描述

三、与GeoMesa Server整合
1.Geoserver安装
(1)从 http://geoserver.org/download/ 下载GeoServer,将其解压到指定目录
(2)将geomesa-hbase_2.11-2.0.1/dist/gs-plugins/geomesa-hbase-gs-plugin_2.11-2.0.1-install.tar.gz拷贝到GeoServer WEB-INF/lib目录下,并解压(1. jar -xvf geomesa-hbase-gs-plugin_2.11-2.0.1-shaded.jar)。
(3)拷贝所需jar:将以下目录拷贝到GeoServer WEB-INF/lib目录下(注:jar的版本与采用Hadoop和HBase版本相关):
commons-cli-1.2.jar
commons-configuration-1.6.jar
commons-io-2.4.jar
hadoop-annotations-2.7.4.jar
hadoop-auth-2.7.4.jar
hadoop-common-2.7.4.jar
hadoop-mapreduce-client-core-2.7.4.jar
hadoop-yarn-api-2.7.4.jar
hadoop-yarn-common-2.7.4.jar
hbase-client-1.2.6.jar
hbase-common-1.2.6.jar
hbase-protocol-1.2.6.jar
hbase-server-1.2.6.jar
htrace-core-3.1.0-incubating.jar
metrics-core-2.2.0.jar
netty-3.6.2.Final.jar
nzookeeper-3.4.6.jaretty-all-4.0.23.Final.jar

使用捆绑的$GEOMESA_HBASE_HOME/bin/install-hadoop.sh脚本来安装这些JAR。

(4)创建链接:由于HBase需要其hbase-site.xml在CLASSPATH中,因此需要将本文件链接到GeoServer WEB-INF/classes目录下,可以手动拷贝,也可以执行下面命令:

ln -s /path/to/hbase-site.xml /path/to/geoserver/WEB-INF/classes/hbase-site.xml

2.在Geoserver/bin下启动GeoServer,在浏览器中输入 http://localhost:8080/geoserver(http://cloud33:8080/geoserver),然后输入用户名:admin,密码:geoserver,出现以下界面:
点击 数据存储- 添加新的数据存储,如果有下图红色标注部分,说明GeoMesa HBase geoserver安装成功!
安装JAR后再重新启动GeoServer。

注:./startup.sh启动geoserver时报错:
1.
在这里插入图片描述
解决:在/etc/profile中添加Geoserver环境变量
2.
在这里插入图片描述

显示 java.net.BindException: Address already in use,原因:geoserver默认端口8080与spark端口重复,解决改掉spark的端口:vi spark路径/sbin/start-master.sh 其中一行:
if [ “$SPARK_MASTER_WEBUI_PORT” = “” ];
then SPARK_MASTER_WEBUI_PORT=8080 将8080改为你所希望启动的端口号如8089。start-all.sh重启spark。

3.geoserver中添加hbase数据存储
(1)建立一个工作区(如图):
在这里插入图片描述
(2)添加hbase数据存储,输入相关参数:
在这里插入图片描述

(注:参数设置与在运行教程时命令行上提供的参数值相同; 他们描述了如何连接到数据所在的HBase实例单击“Save”GeoServer将搜索您的HBase表以查找任何GeoMesa管理的要素类型。)
(3)视图:点击“Layer Preview”链接。找到已添加的图层,点击“OpenLayers”链接,打开一个新的标签,可以看到:
在这里插入图片描述

(注:参数设置完了之后报错,无法保存:

在这里插入图片描述在这里插入图片描述
原因:hbase版本问题,之前部署的hbase是1.2.6的版本,而现在安装的geoserver是2.13.1版
本。
解决:下载hbase-1.3.1版本从头开始重新部署(所有与hbase相关的配置都改掉!))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cherry CSL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值