主頁 > 知識庫 > 10大HBase常見運維工具整理小結(jié)

10大HBase常見運維工具整理小結(jié)

熱門標簽:網(wǎng)站上插入地圖標注內(nèi)容 地圖標注企業(yè)名稱侵權(quán)案件 繽客網(wǎng)注冊時地圖標注出不來 工廠位置地圖標注 400電話辦理哪家好廠商 鶴壁電銷外呼系統(tǒng)怎么安裝 重慶營銷外呼系統(tǒng)排名 企業(yè)400電話辦理哪正規(guī) 地圖標注需要現(xiàn)場嗎

摘要:HBase自帶許多運維工具,為用戶提供管理、分析、修復(fù)和調(diào)試功能。本文將列舉一些常用HBase工具,開發(fā)人員和運維人員可以參考本文內(nèi)容,利用這些工具對HBase進行日常管理和運維。

HBase組件介紹

HBase作為當前比較熱門和廣泛使用的NoSQL數(shù)據(jù)庫,由于本身設(shè)計架構(gòu)和流程上比較復(fù)雜,對大數(shù)據(jù)經(jīng)驗較少的運維人員門檻較高,本文對當前HBase上已有的工具做一些介紹以及總結(jié)。

寫在前面的說明:

1) 由于HBase不同版本間的差異性較大(如HBase2.x上移走了hbck工具),本文使用的所有命令行運行的環(huán)境為MRS_1.9.3,對應(yīng)的HBase版本為1.3.1,部分命令在HBase2上不支持(有時間的話會對HBase2做單獨的介紹)。

2) 本文所涉及的HBase工具均為開源自帶工具,不涉及廠商自研的優(yōu)化和運維工具。

Canary工具

HBase Canary是檢測HBase集群當前狀態(tài)的工具,用簡單的查詢來檢查HBASE上的region是否可用(可讀)。它主要分為兩種模式

1) region模式(默認),對每個region下每個CF隨機查詢一條數(shù)據(jù),打印是否成功以及查詢時延。

#對t1和tsdb-uid表進行檢查
  hbase org.apache.hadoop.hbase.tool.Canary t1 tsdb-uid
  #注意:不指定表時掃所有region

2) regionserver模式,對每個regionserver上隨機選一個表進行查詢,打印是否成功以及查詢時延。

#對一個regionserver進行檢查
  hbase org.apache.hadoop.hbase.tool.Canary -regionserver node-ana-coreQZLQ0002.1432edca-3d6f-4e17-ad52-098f2adde2e6.com
  #注意:不指定regionserver時掃所有regionserver

Canary還可以指定一些簡單的參數(shù),可以參考如下

總結(jié):

  • 對集群影響:2星(只是簡單的讀操作,region個數(shù)極多的時候會占用少部分請求吞吐)
  • 實用性:2星

HFile工具

HBase HFile查看工具,主要用來檢查當前某個具體的HFile的內(nèi)容/元數(shù)據(jù)。當業(yè)務(wù)上發(fā)現(xiàn)某個region無法讀取,在regionserver上由于文件問題無法打開region或者讀取某個文件出現(xiàn)異常時,可用此工具單獨來檢查HFile是否有問題

#查看t1表下的其中一個HFile的詳情,打印KV
hbase org.apache.hadoop.hbase.io.hfile.HFile -v -m -p -f /hbase/data/default/t1/4dfafe12b749999fdc1e3325f22794d0/cf1/06e102be436c449693734b222b9e9aab

使用參數(shù)如下:

總結(jié):

  • 對集群影響:1星(此工具不走HBase通道,只是單純的讀取文件,不影響集群)
  • 實用性:4星(可精確判斷具體的HFile內(nèi)容是否有問題)

RowCounter和CellCounter工具

RowCounter 是用MapReduce任務(wù)來計算表行數(shù)的一個統(tǒng)計工具。而和 RowCounter類似,但會收集和表相關(guān)的更細節(jié)的統(tǒng)計數(shù)據(jù),包括:表的行數(shù)、列族數(shù)、qualifier數(shù)以及對應(yīng)出現(xiàn)的次數(shù)等。兩個工具都可以指定row的起止位置和timestamp來進行范圍查詢

# RowCounter掃描t1
hbase org.apache.hadoop.hbase.mapreduce.RowCounter t1
#用CellCounter掃描t1表并將結(jié)果寫入HDFS的/tmp/t1.cell目錄
hbase org.apache.hadoop.hbase.mapreduce.CellCounter t1 /tmp/t1.cell

使用參數(shù)如下:

總結(jié):

對集群影響:3星(需要起MapReduce對表所有region進行scan,占用集群資源)

實用性:3星(HBase統(tǒng)計自身表行數(shù)的唯一工具, hbase shell中count效率比較低)

Clean工具

clean命令是用來清除HBase在ZooKeeper合HDFS上數(shù)據(jù)的工具。當集群想清理或鏟除所有數(shù)據(jù)時,可以讓HBase恢復(fù)到最初的狀態(tài)。

#清除HBase下的所有數(shù)據(jù)
hbase clean --cleanAll使用參數(shù)如下:

總結(jié):

對集群影響:5星(刪除HBase集群上所有數(shù)據(jù))

實用性:2星(除開需要重新設(shè)置HBase數(shù)據(jù)的場景如要切換到HBase on OBS,平時很少會用到)

HBCK工具

HBase的hbck工具是日常運維過程中使用最多的工具,它可以檢查集群上region的一致性。由于HBase的RIT狀態(tài)較復(fù)雜也最容易出現(xiàn)問題,日常運維過程中經(jīng)常會遇到region不在線/不一致等問題,此時就可以根據(jù)hbck不同的檢查結(jié)果使用相應(yīng)的命令進行修復(fù)。

#檢查t1表的region狀態(tài)
hbase hbck t1
#修復(fù)t1表的meta并重新assign分配
hbase hbck -fixMeta -fixAssignments t1

由于該工具使用的場景太多太細,此處就不作展開介紹了,可以查看參數(shù)的描述來對各種異常場景進行修復(fù)。注意:在不清楚異常原因的情況下,千萬不要亂使用修復(fù)命令病急亂投醫(yī),很有可能會使問題本身更糟糕。

使用參數(shù)如下:

總結(jié):

  • 對集群影響:4星(個別meta相關(guān)命令對集群影響極大)
  • 實用性:5星(hbck是HBase運維人員的最基本運維工具)

RegionSplitter工具

RegionSplitter是HBase的Pre-splitting工具,在table初始化的時候如果不配置pre-split的話,HBase不知道如何去split region,這就很大可能會造成后續(xù)的region/regionserver的熱點,最好的辦法就是首先預(yù)測split的切分點,在建表的時候做pre-splitting,保證一開始的業(yè)務(wù)訪問總體負載均衡。RegionSplitter能夠通過具體的split算法在建表的時候進行pre-split,自帶了兩種算法:

HexStringSplit

使用8個16進制字符來進行split,適合row key是十六進制的字符串(ASCII)作為前綴的時候

UniformSplit

使用一個長度為8的byte數(shù)組進行split,按照原始byte值(從0x00~0xFF)右邊以00填充。以這種方式分區(qū)的表在Put數(shù)據(jù)的時候需要對rowkey做一定的修飾, 比如原來的rowkey為rawStr,則需要對其取hashCode,然后進行按照byte位反轉(zhuǎn)后放在最初rowkey串的前面

#創(chuàng)建test_table表,并使用HexStringSplit算法預(yù)分區(qū)10個
hbase org.apache.hadoop.hbase.util.RegionSplitter test_table HexStringSplit -c 10 -f f1
#Tips:此操作等價于在hbase shell中create ' test_table ', { NAME => 'f1'},{NUMREGIONS => 10, SPLITALGO => 'HexStringSplit'}

總結(jié):

不管是HBase自帶的哪一種pre-split算法,都是建立在表數(shù)據(jù)本身的rowkey符合它約定格式的條件下,實際用戶還是需要按業(yè)務(wù)來設(shè)計rowkey,并實現(xiàn)自己的pre-split算法(實現(xiàn)SplitAlgorithm接口)

對集群影響:1星(創(chuàng)建表操作,不影響其他集群業(yè)務(wù))

實用性:3星(實際pre-split都是按實際業(yè)務(wù)來的,對于測試來說可以使用HBase默認的split算法來構(gòu)造rowkey格式)

FSHLog工具

FSHLog是HBase自帶的一個WALs文件檢查和split工具,它主要分為兩部分功能

dump

將某個WAL文件中的內(nèi)容dump出來具體的內(nèi)容

split

觸發(fā)某個WAL文件夾的WAL split操作

#dump出某個當前的WALs文件中的內(nèi)容
hbase org.apache.hadoop.hbase.regionserver.wal.FSHLog --dump /hbase/WALs/node-ana-coreqzlq0002.1432edca-3d6f-4e17-ad52-098f2adde2e6.com,16020,1591846214733/node-ana-coreqzlq0002.1432edca-3d6f-4e17-ad52-098f2adde2e6.com%2C16020%2C1591846214733.1592184625801

相關(guān)參數(shù)

總結(jié):

  • 對集群影響:2星(觸發(fā)的WAL split操作會對相應(yīng)的Worker節(jié)點增加少量的負載,當需要split的WAL極大時,會對region級別的業(yè)務(wù)有影響)
  • 實用性:4星(可以很好的檢查WAL內(nèi)容的準確性,以及適用于WAL搬遷的場景)

WALPlayer工具

WALPlayer是一個將WAL文件中的log回放到HBase的工具。可以通過對某個表或者所有表進行數(shù)據(jù)回放,也可以指定相應(yīng)的時間區(qū)間等條件進數(shù)據(jù)回放。

#回放一個WAL文件的數(shù)據(jù)到表t1
hbase org.apache.hadoop.hbase.mapreduce.WALPlayer /tmp/node-ana-coreqzlq0002.1432edca-3d6f-4e17-ad52-098f2adde2e6.com%2C16020%2C1591846214733.1592184625801 t1

Q&A:FSHLog和WALPlayer都能將WAL文件中的數(shù)據(jù)恢復(fù)到HBase中,有什么差異區(qū)別?

FSHLog是觸發(fā)WAL split請求到HMaster中,會對WAL中的所有數(shù)據(jù)恢復(fù)到HBase,走的是HBase自己的WAL split流程。而WALPlayer是本身起MR任務(wù)來掃WAL文件中的數(shù)據(jù),對符合條件的數(shù)據(jù)put到特定的表中或輸出HFile到特定目錄

相關(guān)參數(shù):

總結(jié):

  • 對集群影響:3星(起MR任務(wù)會占用部分集群資源)
  • 實用性:4星(在某些特定的場景下實用性很高,如replication預(yù)同步,表數(shù)據(jù)恢復(fù))

OfflineMetaRepair工具

OfflineMetaRepair工具由于修復(fù)HBase的元數(shù)據(jù)。它會基于HBase在HDFS上的region/table元數(shù)據(jù),重建HBase元數(shù)據(jù)。

#重新建立hbase的元數(shù)據(jù)
hbase org.apache.hadoop.hbase.util.hbck.OfflineMetaRepair

Q&A:hbck的fixMeta同樣可以修復(fù)HBase的元數(shù)據(jù),還能指定具體的表使用更加靈活,還有必要使用OfflineMetaRepair?

hbck工具是HBase的在線修復(fù)工具,如果HBase沒有啟動是無法使用的。OfflineMetaRepair是在離線狀態(tài)修復(fù)HBase元數(shù)據(jù)

相關(guān)參數(shù):

總結(jié):

  • 對集群影響:5星(備份原始元數(shù)據(jù)表后,會重建HBase元數(shù)據(jù))
  • 實用性:4星(當HBase由于元數(shù)據(jù)原因無法啟動時,此工具可以恢復(fù)HBase)

Sweeper工具

Sweeper工具(HBASE-11644)可以合并HBase集群中小的MOB文件并刪除冗余的MOB文件。它會基于Column Family起相應(yīng)的SweepJob任務(wù)來對相應(yīng)的MOB文件進行合并。注意,此工具不能與MOB的major compaction同時運行,并且同一個Column Family的Sweeper任務(wù)不能同時有多個一起運行。

#對t1表執(zhí)行Sweeper
hbase org.apache.hadoop.hbase.mob.mapreduce.Sweeper t1 cf1

相關(guān)參數(shù):

總結(jié):

  • 對集群影響:5星(合并MOB任務(wù)會占用大量的Yarn資源和IO,對業(yè)務(wù)影響很大)
  • 實用性:2星(只適合MOB場景,使用MOB會存在HMaster上compact的瓶頸暫不推薦(社區(qū)HBASE3上才支持,相關(guān)jira HBASE-22749))

以上就是此次介紹的所有HBase運維工具,其他的如Bulkload批量導(dǎo)入,數(shù)據(jù)遷移,測試相關(guān)的pe等暫不描述。如果有寫的不對的請指正,多謝。

官方文檔:https://hbase.apache.org/book.html

到此這篇關(guān)于10大HBase常見運維工具整理小結(jié)的文章就介紹到這了,更多相關(guān)HBase 運維工具內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

標簽:日照 棗莊 東莞 渭南 96 鹽城 克拉瑪依 常州

巨人網(wǎng)絡(luò)通訊聲明:本文標題《10大HBase常見運維工具整理小結(jié)》,本文關(guān)鍵詞  大,HBase,常見,運維,工具,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《10大HBase常見運維工具整理小結(jié)》相關(guān)的同類信息!
  • 本頁收集關(guān)于10大HBase常見運維工具整理小結(jié)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章