HBase常見運維工具整理

2021-10-05 11:12:39 字數 4493 閱讀 9073

hbase自帶許多運維工具,為使用者提供管理、分析、修復和除錯功能,這些工具一部分的入口是hbase shell 客戶端,另一部分是在hbase的jar包中。

大多數可通過執行以下形式的命令實現:

hbase

本文將列舉一些常用hbase工具,開發人員和運維人員可以參考本文內容,利用這些工具對hbase進行日常管理和運維。

canary

hbase canary 是檢測hbase 系統狀態的工具,檢測粒度可以是列族、region或regionserver等。canary 會對指定表的每乙個region 抓取一行,通過探測失敗或者延遲來判斷集群當前情況。

該工具有三個常見使用場景:

檢查集群中所有region是否可查:

sudo -u hbase hbase org.apache.hadoop.hbase.tool.canary

sudo -u hbase hbase org.apache.hadoop.hbase.tool.canary -t 60000

-t :該選項用於指定檢測超時,預設為600000 (milisecs)

檢查集群中某些特定表的所有region是否可查:

sudo -u hbase hbase org.apache.hadoop.hbase.tool.canary table_name1 table_name2 ...

sudo -u hbase hbase org.apache.hadoop.hbase.tool.canary -t 60000 table_name1 table_name2 ...

檢查regionserver的服務狀態:

sudo -u hbase hbase org.apache.hadoop.hbase.tool.canary -regionserver

sudo -u hbase hbase org.apache.hadoop.hbase.tool.canary -t 60000 -regionserver

hbck工具

hbck工具用於檢查hbase集群一致性。命令為:

sudo -u hbase hbase hbck

注意,當出現inconsistency 時,可以重複執行 hbck 工具若干次以確認。因為inconsistency 可能只是暫時的,例如集群正在啟動或者某個region正在被拆分時會報inconsistency ,但不意味著穩定時也不一致。

hfile檢視工具

當需要檢視hfile內容的文字化版本時,可以使用 org.apache.hadoop.hbase.io.hfile.hfile 工具實現,執行語句如下:

$ $/bin/hbase org.apache.hadoop.hbase.io.hfile.hfile

例如,檢視檔案 hdfs: 中的內容,可敲入以下命令:

sudo -u hbase hbase org.apache.hadoop.hbase.io.hfile.hfile -v -f hdfs:

選項-v表示檢視詳細內容,如果去掉則只返回簡化過的摘要內容。

copytable

copytable 可以用來拷貝部分或者全部的表的內容,無論表是在同一集群或是不同集群。待操作的表必須存在,才能執行 copytable 操作。用法如下:

sudo -u hbase hbase org.apache.hadoop.hbase.mapreduce.copytable --help

/bin/hbase org.apache.hadoop.hbase.mapreduce.copytable --help

usage: copytable [general options] [--starttime=x] [--endtime=y] [--new.name=new] [--peer.adr=adr]

其中表示待拷貝的表的名稱。

例如我們可以將 testtable 拷貝到某個集群,該集群是1小時時間視窗區間段的備份:

hbase org.apache.hadoop.hbase.mapreduce.copytable -dhbase.client.scanner.caching=100 -dmapred.map.tasks.speculative.execution=false --startrow=rk1 --stoprow=rk4 --starttime=1265875194289 --endtime=1265878794289 --peer.adr=transwarp-perf1,transwarp-perf2,transwarp-perf3:2181:/hyperbase1 --new.name=testtablenew --families=cf1:cf2 testtable

該命令中各選項的含義如下:

export

export 用來將表中的內容轉儲到hdfs上面的序列檔案,可指定時間戳(timestamp),命令如下:

sudo -u hbase hbase org.apache.hadoop.hbase.mapreduce.export []

例如,如下命令用export指定時間戳(timestamp)匯出表member5,到集群master24的hdfs:

hbase org.apache.hadoop.hbase.mapreduce.export member5 hdfs://master24:9000/user/hadoop/dump2 1 1401938590466 1401938590467

import

import 工具用來將之前被 export 的資料載入hbase中。命令如下:

sudo -u hbase hbase org.apache.hadoop.hbase.mapreduce.import

例如,用import將集群master24的hdfs中的表member5匯入至hbase,實現命令如下:

sudo -u hbase hbase org.apache.hadoop.hbase.mapreduce.import member5 hdfs://master24:9000/user/hadoop/dump2

importtsv

importtsv 工具的作用是把資料以tsv格式載入到hbase中。

它有以下兩個典型的用途:

sudo -u hbase hbase org.apache.hadoop.hbase.mapreduce.importtsv -dimporttsv.columns=a,b,c

sudo -u hbase hbase org.apache.hadoop.hbase.mapreduce.importtsv -dimporttsv.columns=a,b,c -dimporttsv.bulk.output=

其中各選項的含義如下:

completebulkload

completebulkload 工具會將產生的storefiles移動到hbase表中。這個工具通常與 importtsv 的輸出配合使用。

sudo -u hbase hbase org.apache.hadoop.hbase.mapreduce.loadincrementalhfiles

通常表示經過importtsv 載入到hdfs上的storefiles的路徑。

rowcounter和cellcounter

rowcounter 是用來計算錶行數的mapreduce工程。通常,當使用者對元資料的一致性有疑問時,rowcounter 可以作為乙個比較實用的工具來全面檢查hbase是否讀取了表的所有block。它可以通過 --starttime=[starttime] 和 --endtime=[endtime] 標籤來限定資料的時間範圍。

sudo -u hbase hbase org.apache.hadoop.hbase.mapreduce.rowcounter [...]

hbase還有另乙個具有診斷作用的mapreduce工程,叫做 cellcounter 。它和 rowcounter 類似,但會收集和表相關的更細節的統計資料,包括:表的行數、所有行的列族數、所有行的qualifier數、每個列族出現的次數、每個qualifier出現的次數、每個qualifier的版本總數。

該工具也可以通過 --starttime=[starttime] 和 --endtime=[endtime] 來限定掃瞄表的時間範圍,還可以用行的正規表示式或字首來限定待分析的行。

sudo -u hbase hbase org.apache.hadoop.hbase.mapreduce.cellcounter [regex or prefix]

hbase clean 工具

hbase clean 命令是用於清除zookeeper或hdfs上的hbase相關資料的工具。它適合用於測試或者剷除hbase集群時對zookeeper或hdfs的清理。

sudo -u hbase hbase clean (--cleanzk|--cleanhdfs|--cleanall)

更多工具

本文介紹的都是hbase自帶的常用運維工具,多用於狀態檢查和資料遷移。除此之外,還有一些hbase工具實現了更高階易用的功能,例如分布式儲存運維工具dstools,用於修復常見異常情況;bulkload工具,用於批量的向hbase匯入大量資料;以及雅虎開源的通用的更靈活的效能測試工具ycsb等。之後我們還會對這些更多的工具進行整理,與大家一起分享。

hbase日常運維

一,基本命令 建表 create testtable coulmn1 coulmn2 也可以建表時加coulmn的屬性如 create testtable 其中的屬性有versions 設定歷史版本數,ttl 過期時間,compression 壓縮方式,當配置lzo的情況 刪除表 drop test...

Cassandra運維工具

轉 一.nodetool命令 cassandranodetool是乙個檢視集群資訊的命令,可以檢視集群統計資訊,節點資訊,資料環資訊,增刪節點,重新整理memtable資料到sstable,合併sstable等 1.nodetool version 用於顯示cassandra當前版本資訊 2.nod...

mysql常用運維 mysql 運維常見操作

mysql密碼的恢復方法之一 1 首先確認伺服器出於安全的狀態,也就是沒有人能夠任意地連線mysql資料庫。因為在重新設定mysql的root密碼的期間,mysql資料庫完全出於沒有密碼保護的 狀態下,其他的使用者也可以任意地登入和修改mysql的資訊。可以採用將mysql對外的埠封閉,並且停止ap...