1、HBase安全重啟HRegionServer
bin/graceful_stop.sh --restart hostname
以上命令執(zhí)行的時候佛掖,HBase會把hostname下的region安全轉(zhuǎn)移到集群的其他機器中贴捡,然后再重啟,重啟完成后再遷移回來法严,達到安全重啟的目的损敷。
2、修改handler.count參數(shù)
<property>
<name>hbase.regionserver.handler.count</name>
<value>200</value>
<description>Default : 10.
Count of RPC Listener instances spun up on RegionServers.
Same property is used by the Master for count of master handlers.
</description>
</property>
RegionServer端開啟的RPC監(jiān)聽器實例個數(shù)深啤,也即RegionServer能夠處理的IO請求線程數(shù)拗馒。默認是10.
此參數(shù)與內(nèi)存息息相關(guān)。該值設(shè)置的時候溯街,以監(jiān)控內(nèi)存為主要參考诱桂。
對于單次請求內(nèi)存消耗較高的Big PUT場景(大容量單次PUT或設(shè)置了較大cache的scan,均屬于Big PUT)或ReigonServer的內(nèi)存比較緊張的場景呈昔,可以設(shè)置的相對較小挥等。
對于單次請求內(nèi)存消耗低,TPS(TransactionPerSecond堤尾,每秒事務(wù)處理量)要求非常高的場景触菜,可以設(shè)置的相對大些,通常都調(diào)到100~200之間哀峻,提高regionserver性能涡相。
3、HBase0.94遷移數(shù)據(jù)到HBase1.0的過程
(1)從hbase0.94導(dǎo)出指定表的數(shù)據(jù)到hdfs中
hbase org.apache.hadoop.hbase.mapreduce.Export adt_device_click_compaign /data/yann/data
注意: export 目錄不能存在
(2)把導(dǎo)出的文件拷貝到HBase1.0所在的hdfs目錄
可以通過打包后get/put的方式剩蟀,但是推薦使用集群之間的拷貝工具distcp
hadoop-2.6.0-cdh5.5.0/bin/hadoop distcp -D mapreduce.job.queuename=default -update -skipcrccheck hftp://hostname:50070/data/output/* hdfs://hdfs/data/output/
(3)在 hbase1.0 下創(chuàng)建對應(yīng)的表后催蝗,執(zhí)行以下命令進行導(dǎo)入
hbase -Dhbase.import.version=0.94 org.apache.hadoop.hbase.mapreduce.Import adt_device_click_compaign /data/yann/data
這里要注意一點是,-Dhbase.import.version參數(shù)的值是寫遷出的hbase版本
4育特、HBase的hbck工具
hbase hbck [opts] {only tables}
(1) opts通用可選項
-help 展示help信息丙号;
-detail 展示所有Region的詳情先朦;
-timelag <秒級時間> 處理在過去的指定時間內(nèi)沒有發(fā)生過元數(shù)據(jù)更新的region;
-sleepBeforeRerun <秒級時間> 在執(zhí)行-fix指令后時睡眠指定的時間后再檢查fix是否生效犬缨;
-summary 只打印表和狀態(tài)的概要信息喳魏;
-metaonly 只檢查hbase:meta表的狀態(tài);
-sidelineDir <hdfs://> 備份當(dāng)前的元數(shù)據(jù)到HDFS上怀薛;
-boundaries 校驗META表和StoreFiles的Region邊界是否一致刺彩;
(2) 元數(shù)據(jù)修復(fù)選項
在不確定的情況下,慎用以下指令枝恋。
-fix 嘗試修復(fù)Region的分配创倔,通常用于向后兼容;
-fixAssignments 嘗試修復(fù)Region的分配焚碌,用來替換-fix指令畦攘;
-fixMeta 嘗試修復(fù)元數(shù)據(jù)問題;這里假設(shè)HDFS上的region信息是正確的十电;
-noHdfsChecking 不從HDFS加載/檢查Region信息知押;這里假設(shè)hbase:meta表中的Region信息是正確的,不會在檢查或修復(fù)任何HDFS相關(guān)的問題鹃骂,如黑洞(hole)台盯、孤島(orphan)或是重疊(overlap);
-fixHdfsHoles 嘗試修復(fù)HDFS中的Region黑洞偎漫;
-fixHdfsOrphans 嘗試修復(fù)hdfs中沒有.regioninfo文件的region目錄爷恳;
-fixTableOrphans 嘗試修復(fù)hdfs中沒有.tableinfo文件的table目錄(只支持在線模式)有缆;
-fixHdfsOverlaps 嘗試修復(fù)hdfs中region重疊的現(xiàn)象象踊;
-fixVersionFile 嘗試修復(fù)hdfs中hbase.version文件缺失的問題;
-maxMerge <n> 在修復(fù)region重疊的現(xiàn)時棚壁,允許merge最多<n>個region(默認n等于5)杯矩;
-sidelineBigOverlaps 在修復(fù)region重疊問題時,允許暫時擱置重疊量較大的部分袖外;
-maxOverlapsToSideline <n> 在修復(fù)region重疊問題時史隆,允許一組里暫時擱置最多n個region不處理(默認n等于2);
-fixSplitParents 嘗試強制將下線的split parents上線曼验;
-ignorePreCheckPermission 在執(zhí)行檢查時忽略文件系統(tǒng)權(quán)限泌射;
-fixReferencesFiles 嘗試下線引用斷開(lingering reference)的StoreFile;
-fixEmptyMetaCells 嘗試修復(fù)hbase:meta表中沒有引用到任何region的entry(REGIONINFO_QUALIFIER為空的行)鬓照。
(3) Datafile修復(fù)選項
專業(yè)命令熔酷,慎用。
-checkCorruptHFiles 檢查所有HFile--通過逐一打開所有的HFile來確定其是否可用豺裆;
-sidelineCorruptHFiles 隔離損壞的HFile拒秘。該指令中包含-checkCorruptHFiles操作。
(4) Meta修復(fù)快捷指令
-repair 是以下指令的簡寫:-fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans -fixHdfsOverlaps -fixVersionFile -sidelineBigOverlaps -fixReferenceFiles -fixTableLocks -fixOrphanedTableZnodes;
-repairHoles 是以下指令的簡寫:-fixAssignments -fixMeta -fixHdfsHoles躺酒。
(5) Table lock選項
-fixTableLocks 刪除已持有超過很長時間的table lock((hbase.table.lock.expire.ms配置項押蚤,默認值為10分鐘)。
(6) Table Znode選項
-fixOrphanedTableZnodes 如果表不存在羹应,則將其在zookeeper中ZNode狀態(tài)設(shè)置為disabled揽碘。