HBase-Indexer环境搭建、测试

1.环境搭建

1.1.环境说明

    环境搭建过程中用到4个节点,都为虚拟机。在部署HBase-Indexer环境之前已经部署好了zookeeper、HDFS、Yarn、HBase环境,这篇文档就不赘述了,本文重点讲解HBase-Indexer的搭建过程,其中HBase-Indexer部署在三个节点上,和HRegionServer所在节点相同,Solr服务部署一个节点。具体各个服务在节点分布的情况如表格1.1所示,其中“1”表示有服务存在该节点上。

表1.1.服务分布情况

1.2.下载 HBase-Solr(HBase-Indexer)

下载地址:http://archive-primary.cloudera.com/cdh5/cdh/5/

这里搭建环境下载的是 hbase-solr-1.5-cdh5.11.0,如图1.2所示。

图1.2.HBase-Solr下载

1.3.配置HBase-Indexer

1.3.1.配置hbase-indexer-site.xml文件

(1)、解压刚才下载的hbase-solr-1.5-cdh5.11.0.tar.gz,在hbase-indexer-dist/target目录下将hbase-indexer-1.5-cdh5.11.0.tar.gz拷贝到你需要安装的目录下;

(2)、解压hbase-indexer-1.5-cdh5.11.0.tar.gz;

tar -zxvf hbase-indexer-1.5-cdh5.11.0.tar.gz

(3)、配置 hbase-indexer,在conf目录下编辑hbase-indexer-site.xml文件,编辑内容如下:

<property>
  <name>hbaseindexer.zookeeper.connectstring</name>
  <value>node1:2181,node3:2181,node4:2181</value>
</property>

<property>
  <!-- 配置hbase.zookeeper.quorum,只需要zk所在的主机名,不需要端口 -->
  <name>hbase.zookeeper.quorum</name>
  <value>node1,node3,node4</value>
</property>

编辑hbase-indexer-site.xml后如图1.3.1所示

图1.3.1.hbase-indexer-site.xml文件配置

1.3.2.配置hbase-indexer-env.sh文件

在文件hbase-indexer-env.sh配置JAVA_HOME,配置完成后如图1.3.2所示。

图1.3.1.hbase-indexer-env.sh文件配置

配置完成后,将hbase-indexer拷贝到所有HRegionServer所在的节点上,即node2,node3,node4。

1.4.配置HBase

为了使用HBase-Indexer,必须在HBase启用replication,编辑HBase的hbase-site.xml,加入配置内容如下。

  <!-- SEP是replication的基础,所以启用它 -->
  <property>
    <name>hbase.replication</name>
    <value>true</value>
  </property>

  <!-- 确保每一个 SEP 消费者能使用slave服务器的百分比为100%,(否则,会出现闲置,特别是小的集群)-->
  <property>
    <name>replication.source.ratio</name>
    <value>1.0</value>
  </property>

  <!-- 如果一次复制大量的 hlog entries,消费者将花费一段时间来处理,那么HBase的RPC调用可能会超时-->
  <property>
    <name>replication.source.nb.capacity</name>
    <value>1000</value>
  </property>

  <!-- A custom replication source that fixes a few things and adds
       some functionality (doesn't interfere with normal replication
       usage). -->
  <property>
    <name>replication.replicationsource.implementation</name>
    <value>com.ngdata.sep.impl.SepReplicationSource</value>
  </property>

配置完成后如图1.4所示。

图1.4.HBase配置

将配置好的文件拷贝到其他HBase节点上。

1.5.拷贝HBase使用Hbase-Indexer需要的jar

将hbase-indexer-1.5-cdh5.11.0.tar.gz解压后lib中的所有以 hbase-sep 开头的jar加入到HBase的lib目录里。

cp lib/hbase-sep-* $HBASE_HOME/lib

lib/目录下一共有四个jar需要拷贝到HBase安装目录下的lib/中,具体jar包如图1.5所示。

图1.5.需要拷贝的jar包

1.6.下载Solr服务并安装

下载地址为:http://archive-primary.cloudera.com/cdh5/cdh/5/,这里测试下载的版本为solr-4.10.3-cdh5.11.0.tar.gz,如图1.6所示。

图1.6.Solr服务下载

对于简单的测试可以不用对Solr进行特别的配置,下载完成后解压到相应的安装目录。

1.7.启动服务

(1)、启动HDFS。

./bin/start-all.sh

(2)、启动HBase。

./bin/start-hbase.sh

(3)、在Solr服务的安装目录下的example目录下启动Solr。

java -Dbootstrap_confdir=./solr/collection1/conf -Dcollection.configName=myconf -DzkHost=node1:2181,node3:2181,node4:2181/solr  -jar start.jar

Solr启动成功后会输出如图1.7.1.所示类似的内容,启动后不要关闭当前窗口,关闭后Solr服务就死了。

图1.7.1.Solr启动成功

(4)、在HBase-Indexer的安装目录下启动HBase-Indexer。

./bin/hbase-indexer server

HBase-Indexer启动成功后会输出如图1.7.2.所示类似的内容。启动后不要关闭当前窗口,关闭后HBase-Indexer服务就死了。

图1.7.2.HBase-Indexer启动成功

2.HBase-Indexer测试

2.1.在HBase中创建测试表

创建表的时候必须开启replication,即设置REPLICATION_SCOPE => '1',在其中一台机器上执行下面的命令。

./bin/hbase shell
create 'indexdemo-user', { NAME => 'info', REPLICATION_SCOPE => '1' }

创建成功后如图2.1所示。

图2.1.创建测试表

2.2.创建索引

        在HBase-Indexer的demo目录下给了一个创建索引的文件user_indexer.xml,我们可以自己参照着编写一个自己的,也可以直接使用这个。这里测试我们直接使用demo目录下的 user_indexer.xml。只需要在一个hbase-indexer服务节点上执行下面命令就可以了。

./bin/hbase-indexer add-indexer -n myindexer -c user_indexer.xml -cp solr.zk=localhost:2181/solr -cp solr.collection=collection1

索引创建成功后可以通过下面的命令来查看已经创建的索引,结果如图2.2所示。

./bin/hbase-indexer list-indexer solr.zk=localhost:2181/solr

图2.2.查看创建的索引

对于solr.zk这个参数,好像还必须是localhost:port,我测试了一下如果写的是远程节点上的zk,indexer会创建失败,至于为没找到原因。

hbase-indexer的命令可以通过./bin/hbase-indexer来查看,其中主要有:

add-indexer
update-indexer
delete-indexer
list-indexers

比如查看add-indexer如何使用,可以这样查看 ./bin/hbase-indexer add-indexer。

2.3.准备测试数据

往刚才创建好的HBase表indexdemo-user中put一些测试数据。用于在Solr服务的管理界面进行测试。具体操作如下所示,操作完成后可以通过 scan 来查看indexdemo-user中是否有数据,如图2.3所示。

put 'indexdemo-user', 'row1', 'info:firstname', 'huang.zongxing'
put 'indexdemo-user', 'row2', 'info:firstname', 'John'
put 'indexdemo-user', 'row3', 'info:firstname', 'John-haha'
put 'indexdemo-user', 'row4', 'info:firstname', 'John-haha'
put 'indexdemo-user', 'row4', 'info:lastname','hello'
put 'indexdemo-user', 'row4', 'info:age',21

图2.3.测试数据

2.4.Solr的管理界面测试查询

2.4.1.单条件查询

        进入Solr的管理界面,点击左侧的“Query”进入Solr的查询界面,在表示为“q”的输入框中输入查询条件“firstname_s:huang.zongxing”,默认是“*:*”,点击“Execute Query”按钮进行查询,查询结果如图2.4.1所示。

图2.4.1.Solr单条件查询

2.4.2.多条件查询

        同样在Query界面,Solr的多条件查询实际上是“q”和“fq”同时使用,其处理也就是先通过“q”中的条件进行查询,然后用“fq”中的条件对“q”查询到的结果进行过滤,“fq”中可以填写多个条件,不同条件之间通过“&”分隔。这里我们在“q”中输入“firstname_s:John-haha”,在“fq”中输入“lastname_s:hello”,最后的查询结果如图2.4.2所示。

图2.4.2.Solr多条件查询

2.4.3.过滤查询字段

        在Solr中,我们也可以像SQL那样,查询我们只需要的字段,我们可以在“fl”中输入需要查看的字段,这里测试我们只查看所有数据“id”字段,所以在“q”中输入“*:*”,在“fl”中输入“id”,点击执行,查询结果如图2.4.3所示。

图2.4.3.过滤查询字段

3.关于Solr管理界面的说明

3.1.基本查询

3.2.检索运算符

【参考】

[1] https://my.oschina.net/sniperLi/blog/880610

[2] https://github.com/NGDATA/hbase-indexer/wiki/Installation

转载于:https://my.oschina.net/u/2352856/blog/1239965

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值