Hbase Solr操作手冊

2021-09-25 08:25:12 字數 4511 閱讀 5437

hbase+solr操作手冊

1、對於初次建立得表,可以使用

create 'table',

注:其中1表示開啟replication功能,0表示不開啟,預設為0

對於已經存在得表,可以

disable 'hcc_score'

alter 'hcc_score',

enable 'hcc_score'

2、生成實體配置檔案:

solrctl instancedir --generate $home/hbase-indexer/hcc_score

3、配置conf/schema.xml

動態域,就是這個域的名稱,是由表示式組成的,只要名稱滿足了這個 表示式,就可以用這個域name:域的名稱,該域的名稱是通過乙個表示式來指定的,只要符合這這個規則,就可以使用這個域。比如  aa_i,bb_i,13_i等等,只要滿足這個表示式皆可

name:網域名稱

type:域的型別,必須匹配型別,不然會報錯

indexed:是否要作索引

stored:是否要儲存實際資料

required:是否必填,一般只有id即rowkey才會設定

multivalued:是否有多個值,如果設定為多值,裡面的值就採用陣列的方式來儲存,比如商品位址(大圖,中圖,小圖等)

目前用到的特殊型別如下:

1、支援字首過濾的型別type=「text_prefix_rev」:例如儲存名字、手機號之類的字段,需要支援「*6553」、「*大軍」這種字首過濾的查詢。

2、支援時間的型別type=」tdate」:儲存時間型別,支援時間段過濾和排序

如下為最基礎的配置,生產環境用的配置在apiserver01節點,/home/dsj_solr/hbase-indexer目錄中。

<?xml version="1.0" encoding="utf-8" ?>id

4、再修改solrconfig.xml檔案,根據實際應用情況更改軟硬提交。

軟提交關於實時可見性;硬提交關於持久化。

$ false

$ 5、建立 collection例項並將配置檔案上傳到 zookeeper:

solrctl --zk zkip01,zkip02,zkip03:2181/solr  instancedir --create hcc_score $home/hbase-indexer/hcc_score

solrctl --zk zkip01,zkip02,zkip03:2181/solr collection --create hcc_score -s 11 -r 3 -m 10

注:其中-s表示設定shard數為11,-r表示設定的replica數為3,-m表示單個節點最大shards數目10。shard數最好與節點數量成倍數,replica為副本數量與併發量成正比,單節點最大shard數目與節點數的乘積要大於shard與replica的乘積。例如我們的集群:10*11=110;11*3=33;110>33;符合規定,而且有擴充套件性。

<?xml version="1.0"?>

8、維護cm介面中kv store設定中的morphlines.conf,該檔案為solr中的索引欄位與hbase的字段的對映關係。

solr_locator :

morphlines : [,,

,]}}

", args :["@{}"]}}]}

]9、註冊到 lily hbase indexer service,即註冊索引器,上傳 lily hbase indexer 配置 xml檔案至 zookeeper,由給定的 solrcloud 集合完成此操作。

hbase-indexer add-indexer \

--name hcc_score \

--connection-param solr.zk= zkip01,zkip02,zkip03:2181/solr \

--connection-param solr.collection=hcc_score \

--zookeeper zkip01:2181,zkip02:2181,zkip03:2181

10、檢視索引器是否建立成功:

hbase-indexer list-indexers --zookeeper zkip01:2181

11、同步過去的資料建立索引,若增加了索引字段,需要先reload collection再做同步

solrctl --zk zkip01,zkip02,zkip03:2181/solr collection --reload hcc_score

將lily kv store的morphlines.conf配置檔案複製到索引配置目錄下。

執行下面的命令

hadoop --config /etc/hadoop/conf \

jar /opt/cloudera/parcels/cdh/lib/hbase-solr/tools/hbase-indexer-mr-job.jar \

--conf /etc/hbase/conf/hbase-site.xml \

--morphline-file morphlines.conf \

--zk-host zkip01:2181/solr \

--collection hcc_score \

--reducers 0 \

--go-live

驗證實時可見性,在hbase中新增、更新、刪除資料,在solr中15秒內可見,因為softcommit配置的為15000ms。

12、增加

put 'hcc_score_cf_name','0012','cf:name','bob'

13、更新

put 'hcc_score_cf_name','0012','cf:name','jack'

14、刪除

deleteall 'hcc_score_cf_name','0012'

15、擴充套件命令

#solrctl

1、列出配置目錄列表

solrctl --zk zkip01,zkip02,zkip03:2181/solr instancedir –list

2、列出collection列表

solrctl --zk zkip01,zkip02,zkip03:2181/solr collection –list

3、更新coolection配置

solrctl --zk zkip01,zkip02,zkip03:2181/solr instancedir --update newdir $home/hbase-indexer/newdir

solrctl --zk zkip01,zkip02,zkip03:2181/solr collection --reload name

4、刪除instancedir

solrctl --zk zkip01,zkip02,zkip03:2181/solr instancedir --delete name

5、刪除collection

solrctl --zk zkip01,zkip02,zkip03:2181/solr collection --delete name

6、刪除collection所有doc

solrctl --zk zkip01,zkip02,zkip03:2181/solr collection --deletedocs name

7、刪除user配置目錄

rm -rfv $home/hbase-indexer/user

hbase-indexer update-indexer -n hcc_score --zookeeper zkip01:2181

9、刪除索引

hbase-indexer delete-indexer -n hcc_score --zookeeper zkip01:2181

10、列印同步歷史索引資料時的詳細日誌

建立log4j.properties,內容如下

# cat log4j.properties

log4j.rootlogger=$

root.logger=info,console

log4j.logger.com.ngdata=trace

然後在命令列追加入 --log4j 指定到所在log4j.properties,然後再跑mr job, 並把控制台輸出備份到檔案,命令如下:

hadoop --config /etc/hadoop/conf \

jar /opt/cloudera/parcels/cdh/lib/hbase-solr/tools/hbase-indexer-mr-job.jar \

--conf /etc/hbase/conf/hbase-site.xml \

--morphline-file morphlines.conf \

--zk-host zkip01:2181/solr \

--collection hcc_score \

--reducers 0 \

--go-live \

--log4j log4j.properties 2>&1 | tee -a console.log

Docker操作手冊

安裝 curl fssl sh sudo groupadd docker sudo gpasswd a docker登出 重新登陸 檢視映象 docker search 用互動方式建立並進入容器 docker run i t 映象id bin bash 再次進入容器docker start 容器id...

git 操作手冊

我們先來理解下git 工作區 暫存區和版本庫概念 下面這個圖展示了工作區 版本庫中的暫存區和版本庫之間的關係 圖中我們可以看出此時 head 實際是指向 master 分支的乙個 游標 所以圖示的命令中出現 head 的地方可以用 master 來替換。圖中的 objects 標識的區域為 git ...

MongoDB 操作手冊

通過mongo shell使用資料庫 crud操作 開啟mongo shell前確保mongodb正在執行 開啟windows終端 或命令提示符 cd進入mongodb安裝目錄 cd bin 我這裡是c program files mongodb server 4.2 cd c program fi...