Key-Value Store Indexer:CDH使用Solr实现HBase二级索引

1.hbase 新建一个表:

create 'SSE_SENTIMENT:ReporterCompany',{NAME => 'cf1', REPLICATION_SCOPE => 1}

添加两条数据:

put 'SSE_SENTIMENT:ReporterCompany','001','cf1:name','xiaoming'

put 'SSE_SENTIMENT:ReporterCompany','002','cf1:name','xiaohua'

2.新建solr的分片:

solrctl instancedir --generate /opt/solr/bqjr

在/opt/solr/bqjr下面会生成一个conf文件夹,在 /opt/solr/bqjr下新建一个morphline-hbase-mapper.xml,

即/opt/solr/bqjr/morphline-hbase-mapper.xml

修改/opt/solr/bqjr/conf下面的schema.xml 文件

<field name="HBase_Indexer_Test_cf1_name" type="string" indexed="true" stored="true"/>  #添加自己需要的字段

修改solrconfig.xml文件:这里默认false,改为true,意思是开启solr的硬提交

   <autoCommit>

       <maxTime>${solr.autoCommit.maxTime:60000}</maxTime>

       <openSearcher>true</openSearcher>

     </autoCommit>

更新schema.xml文件:

solrctl instancedir --update bqjr /opt/solr/bqjr

命令solr分片,运行下面的命令后则建片成功:

 solrctl collection --create bqjr -s 2 -r 1 -m 3

3.编辑morphline-hbase-mapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<indexer table="SSE_SENTIMENT:ReporterCompany" mapper="com.ngdata.hbaseindexer.morphline.MorphlineResultToSolrMapper" read-row="never">
   <param name="morphlineFile" value="morphlines.conf"/>
   <param name="morphlineId" value="bqjrMap"></param>
</indexer>

 这里需要注意上面<param name="morphlineId" value="bqjrMap"></param>,value="bqjrMap",是对应下面的Morphlines文件中的id : bqjrMap,一定要保持一致才可以.

4. CM入到Key-Value Store Indexer的配置面,里面有一Morphlines文件

SOLR_LOCATOR : {

  # Name of solr collection

  #collection : bqjr

  # ZooKeeper ensemble

  zkHost : "$ZK_HOST"

}

morphlines : [

  {

    id : bqjrMap

    importCommands : ["org.kitesdk.**","com.ngdata.**"]

    commands : [                   

      {

        extractHBaseCells {

          mappings : [

            {

              inputColumn : "cf1:name"

              outputField : "HBase_Indexer_Test_cf1_name"

              type : string

              source : value

            }

          ]

        }

      }

      { logTrace { format : "output record: {}", args : ["@{}"] } }   

    ]

  }

]

修改完后重启Key-Value Store Indexer服务

5. Lily HBase Indexer Configuration 和 Lily HBase Indexer Service

hbase-indexer add-indexer --name testMapIndexer --indexer-conf /opt/solr/bqjr/morphline-hbase-mapper.xml --connection-param solr.zk=sbd02.dev:2181,sbd03.dev:2181/solr  --connection-param solr.collection=bqjr --zookeeper sbd01.dev:2181,sbd02.dev:2181,sbd03.dev:2181

6.测试索引器是否创建成功

hbase-indexer list-indexers --zookeeper sbd01.dev:2181,sbd02.dev:2181,sbd03.dev:2181

当看到processing 是处于running状态时,则成功了,若是显示的是failed,则没有成功,重启Key-Value Store Indexer服务观察状态是否成功,若不成功则删除掉该索引.

删除某个索引的命令

hbase-indexer delete-indexer -n testMapIndexer --zookeeper sbd01.dev:2181,sbd02.dev:2181,sbd03.dev:2181

重新运行上面的注册命令即可

===================创建完成========================

补充:删除solr的分片的命令:

curl 'http://192.168.23.178:8983/solr/admin/collections?action=DELETE&name= bqjr'      #则会删除掉solr中的分片

 

参考文档:感谢博主的分享,获益匪浅

https://blog.csdn.net/u010936936/article/details/78064148

https://www.cnblogs.com/kekukekro/p/6340944.html

https://blog.csdn.net/qq_34842671/article/details/86496983

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值