十二、HBase運(yùn)維

1纹安、HBase監(jiān)控指標(biāo)

1.1尤辱、指標(biāo)收集:http://master_ip:port/jmx砂豌;http://regionserver_ip:port/jmx

1.2、HBase核心指標(biāo)

1.2.1光督、通用指標(biāo)

regionCount:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? RegionServer上Region個數(shù)

storeFileCount:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? RegionServer上HFile的個數(shù)

storeFileSize:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? RegionServershang HFile的總大小

hlogFileCount:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? RegionServer上HLog文件數(shù)量

totalReuqestCount:? ? ? ? ? ? ? ? ? ? ? ? ? ? RegionServer累計(jì)請求數(shù)

readRequestCount:? ? ? ? ? ? ? ? ? ? ? ? ? ? RegionServer累計(jì)讀請求數(shù)

writeRequestCount:? ? ? ? ? ? ? ? ? ? ? ? ? ? RegionServer累計(jì)寫請求數(shù)

munOpenConnections:? ? ? ? ? ? ? ? ? ? ? RegionServer上開啟的RPC連接數(shù)

munActiveHandler:? ? ? ? ? ? ? ? ? ? ? ? ? ? RegionServer上活躍的請求隊(duì)列Handler數(shù)量

flushQueueLength:? ? ? ? ? ? ? ? ? ? ? ? ? ? Region Serve上flush隊(duì)列長度

compactionQueueLength:? ? ? ? ? ? ? ? ? RegionServer上Compaction隊(duì)列長度

GcTimeMillis:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? RegionServer上當(dāng)前GC時長

GcTimeMillisParNew:? ? ? ? ? ? ? ? ? ? ? ? RegionServer上新生代GC時長

GcTimeMillisConcurrentMarkSweep: RegionServer上老年代GC時長

1.2.2阳距、HBase寫相關(guān)指標(biāo)

memStoreSize:? ? ? ? ? RegionServer上MemStore的總大小

updatesBlockedTime: RegionServer上因文件太多導(dǎo)致更新被阻塞的時間(毫秒)

1.2.3、讀相關(guān)指標(biāo)

blockCacheHitCount:? ? ? ? ? ? ? ? 命中BlockCache的次數(shù)

blockCacheMissCount:? ? ? ? ? ? 未命中BlockCache的次數(shù)

blockCacheExpressHitPercent: BlockCache命中率

percentFileLoacl:? ? ? ? ? ? ? ? ? ? ? RegionServer上數(shù)據(jù)本地率

showGetCount:? ? ? ? ? ? ? ? ? ? ? ? ? RegionServer上slow get的數(shù)量

1.2.4结借、系統(tǒng)硬件相關(guān)指標(biāo)

系統(tǒng)IO筐摘、CPU、網(wǎng)絡(luò)帶寬船老、系統(tǒng)內(nèi)存等

2咖熟、HBase業(yè)務(wù)隔離

HBase集群上業(yè)務(wù)共享的資源主要有隊(duì)列資源、CPU/內(nèi)存資源努隙、IO資源等球恤。

2.1、隊(duì)列資源隔離:RegionServer默認(rèn)提供一個請求隊(duì)列給所有業(yè)務(wù)使用荸镊,這會導(dǎo)致部分延遲較高的請求影響其他對延遲敏感的業(yè)務(wù)咽斧,HBase并沒有提供業(yè)務(wù)級別的隊(duì)列設(shè)置功能,而是提供了讀寫隊(duì)列隔離的方案躬存≌湃牵總共有三個隊(duì)列: 寫隊(duì)列、get隊(duì)列岭洲、scan隊(duì)列

2.2宛逗、CPU/內(nèi)存資源隔離:計(jì)算資源隔離的主流方案有Docker容器、yarn容器等盾剩,結(jié)合HBase使用場景雷激,實(shí)現(xiàn)業(yè)務(wù)之間計(jì)算資源隔離還需要讓不同業(yè)務(wù)運(yùn)行在不同容器上,HBase提供了RSGroup方案告私,用戶可以將集群劃分為多個組屎暇,每個組包含指定RegionServer集合這樣i就實(shí)現(xiàn)了業(yè)務(wù)之間計(jì)算資源隔離。

2.2驻粟、IO資源隔離:HBase存儲依賴于HDFS系統(tǒng)根悼,HDFS沒有提供業(yè)務(wù)隔離的針對方案,這導(dǎo)致在IO隔離方面沒有好的解決方案蜀撑,目前只能獨(dú)立部署HBase集群進(jìn)行隔離

3挤巡、HBase核心參數(shù)配置

3.1、Region相關(guān)參數(shù)

hbase.hregion.max.filesize:默認(rèn)10G,Region中最大Store的所有文件大小一旦超過該值就會執(zhí)行分裂

太大:導(dǎo)致系統(tǒng)執(zhí)行Compaction消耗大量系統(tǒng)資源酷麦,一定程度上影響業(yè)務(wù)響應(yīng)

太锌蟊啊:導(dǎo)致Region分裂頻繁,太多Region會消耗大量系統(tǒng)資源沃饶,并且在RS故障恢復(fù)時比較耗時

3.2母廷、BlockCache相關(guān)參數(shù)

RegionSever內(nèi)存在20G以內(nèi)就選擇LRUBlockCache,大于20G選擇BucketCache的offHeap模式

hfile.block.cache.size:默認(rèn)為0.4瀑晒、設(shè)置LRUCache的內(nèi)存大小,0.4表示JVM內(nèi)存的40%

當(dāng)前HBase默認(rèn)采用LRUCache策略徘意,blockCache和MemStore大小均為JVM的40%

hbase.bucketcache.ioengine:BucketCache策略的模式選擇,包含heap轩褐、offheap椎咧、file三種。分別使用堆內(nèi)存把介、堆外內(nèi)存以及SSD硬盤作為存儲介質(zhì)

hbase.bucketcache.size:堆外內(nèi)存大小勤讽。

3.3、MemStore相關(guān)參數(shù)

hbase.hregion.memstore.flush.size:默認(rèn)128M,MemStore大于該值就會觸發(fā)Flush,如果當(dāng)前系統(tǒng)flush比較頻繁拗踢,并且內(nèi)存資源比較充足脚牍,可以適當(dāng)提高,調(diào)大的副作用巢墅,這可能造成宕機(jī)時需要Split的HLog數(shù)量增多(原因是诸狭,你存在內(nèi)存的東西變多了,宕機(jī)丟失數(shù)據(jù)更多君纫、所以要恢復(fù)的HLog數(shù)據(jù)也會變多)驯遇,從而延長故障恢復(fù)

hbase.hregion.memstore.block.multiplier:默認(rèn)為4,表示一旦某個Region中所有寫入MemStore的數(shù)據(jù)大小總和達(dá)到MemStore大小的4倍蓄髓,就會強(qiáng)制執(zhí)行Flush,并拋出RegionTooBusyException.如果日志中出現(xiàn)類似‘“Above memstore limit,regionName=,server=,memstoreSize="就需要考慮修改該參數(shù)了叉庐。

hbase.regionserver.global.memstore.size:默認(rèn)0.4,表示占用總JVM內(nèi)存大小的40%会喝,整個RegionSever上所有MemStore的數(shù)據(jù)總大小不能超過該值陡叠,否則會阻塞所有請求并強(qiáng)制執(zhí)行Flush。一旦寫入阻塞肢执,查看日志是否會有Blocking updates on關(guān)鍵字枉阵,如果存在說明當(dāng)前RS Memstore已經(jīng)超過閾值,需要明確是不是Region數(shù)目太多蔚万,單表列簇設(shè)計(jì)太或者該參數(shù)設(shè)置太小岭妖。

hbase.regionserver.global.memstore.lower.limit:默認(rèn)0.95,表示達(dá)到JVM * hbase.regionserver.global.memstore.size 的0.95時就會選擇最大的MemStore進(jìn)行Flush

hbase.regionserver.opionalcaheflushinterval:默認(rèn)為1H反璃,HBase會發(fā)起一個線程定期flush所有的MemStore

3.4昵慌、Compaction相關(guān)參數(shù)

hbase.hstore.compactionThreshold:默認(rèn)為3,當(dāng)Store中文件數(shù)超過該閾值就會觸發(fā)Compaction

hbase.hstore.compactiom.max:默認(rèn)是10淮蜈,最多可參與minor compaction 的文件數(shù)

hbase.regionserver.thread.compaction.throttle:默認(rèn)是2G,是評估單個Compaction為大還是小的依據(jù)斋攀,為了防止大的compaction長時間執(zhí)行阻塞其他小的compaction、HBase會根據(jù)compaction的大小進(jìn)行分離處理梧田,每種Compaction會分配獨(dú)立的線程池淳蔼。

hbase.regionseever.thread.compaction.large/small:默認(rèn)為1侧蘸,大compact 、小compact處理的線程數(shù)鹉梨,在負(fù)載比較高的集群讳癌,可以適當(dāng)增加

hbase.hstore.blockingStoreFiles: 默認(rèn)是10,表示某個Store文件數(shù)一旦大于該閾值,就會導(dǎo)致阻塞更新存皂,日志中出現(xiàn) too many store files 就要查看該值設(shè)置是否合理

hbase.hregion.majorcompaction:默認(rèn)1周進(jìn)行一個Major Compaction晌坤,生產(chǎn)建議大表選擇業(yè)務(wù)低峰期手動執(zhí)行。將此參數(shù)設(shè)置為0代表關(guān)閉自動觸發(fā)

3.5旦袋、Hlog相關(guān)參數(shù)

hbase.regionserver.maxlogs: 默認(rèn)32骤菠,Region觸發(fā)flush條件之一,wal日志文件總數(shù)超過閾值就會強(qiáng)制執(zhí)行flush操作疤孕。默認(rèn)值對于很多集群太小商乎,具體設(shè)置參考HBASE-14951

heap memstore perc maxLogs

1G ? ? ? ? 40% ? ? ? ? ? ? ? ? ? ? ? ? 32

2G ? ? ? ? 40% ? ? ? ? ? ? ? ? ? ? ? ? 32

10G ? ? ? ? 40% ? ? ? ? ? ? ? ? ? ? ? ? 80

20G ? ? ? ? 40% ? ? ? ? ? ? ? ? ? ? ? ? 160

32G ? ? ? ? 40% ? ? ? ? ? ? ? ? ? ? ? ? 256

hbase.regionserver.hlog.splitlog.writer.threads:默認(rèn)為3,RegionSever在恢復(fù)數(shù)據(jù)時HLog日志按照Region分組之后重新寫入HDFS的線程數(shù)祭阀,生產(chǎn)環(huán)境中Region個數(shù)普遍較多鹉戚,為了加速數(shù)據(jù)恢復(fù),建議調(diào)大

3.6专控、請求隊(duì)列相關(guān)參數(shù)

hbase.regionserver.handler.count:默認(rèn)30崩瓤,服務(wù)端用來處理用戶請求的線程數(shù),生產(chǎn)通常需要將該值調(diào)到100-200踩官,請求時間由2部分構(gòu)成却桶,排隊(duì)時間和處理時間,需要關(guān)注排隊(duì)時間蔗牡,如果排隊(duì)很長颖系,需要檢查此參數(shù)是否合理

hbase.ipc.server.callqueue.handler.factor:默認(rèn)為0,服務(wù)端設(shè)置隊(duì)列個數(shù)辩越,加入該值為0.1嘁扼,那么服務(wù)器就會設(shè)置 30*0.1=3個隊(duì)列。

hbase.ipc.server.callqueue.read.ratio:默認(rèn)為0黔攒,表示服務(wù)端讀寫業(yè)務(wù)分別占用隊(duì)列的比例

hbase.ipc.server.call.queue.scan.ratio:默認(rèn)為0趁啸,表示在讀的隊(duì)列中 get 和scan的隊(duì)列占比

3.7、其他重要參數(shù)

hbase.online.schema.update.enable:默認(rèn)為true.更新表schema的時候不需要先disable在enable督惰。直接在線更新即可不傅。建議開啟

hbase.quota.enabled:默認(rèn)為false,表示是否開啟quota功能,quota的功能主要是限制用戶/表的QPS赏胚,起到限流作用

hbase.snapshot.endbled:默認(rèn)為true.表示是否開啟snapshot功能访娶,建議開啟

zookeeper.session.timeout:默認(rèn)180s。表示RS與zk的超時時間觉阅,超時之后RS將會被踢出集群

hbase.zookeeper.useMutil:默認(rèn)為ture崖疤。開啟ZKmutil功能秘车,在某些場景下可以加速批量請求。生產(chǎn)建議設(shè)置為true

hbase.coprocessor.master.classes:生產(chǎn)建議設(shè)置org.apache.hadoop.hbase.security.access.AccessController,可以使用grant 對namespace劫哼、table

叮趴、CF設(shè)置訪問權(quán)限

hbase.coprocessor.region.classes:生產(chǎn)建議設(shè)置為org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController

4、HBase表設(shè)計(jì)

4.1权烧、表名:建議使用nameSpace + 表名的方式疫向,將同一個業(yè)務(wù)的表放在一個同一個命令空間下

4.2、列簇屬性設(shè)置

4.2.1豪嚎、VERSION: 保留最大版本數(shù),默認(rèn)是1.

4.2.2谈火、BLOCKCACHE: 是否開啟Block Cache侈询,默認(rèn)true.在兩種場景下可以設(shè)置為flase: 數(shù)據(jù)量很大且讀取沒有任何熱點(diǎn);表數(shù)據(jù)僅供OLAP,沒有OLTP需求

4.2.3糯耍、BLOOMFILTER:默認(rèn)是ROW扔字。ROW模式表示僅僅根據(jù)Rowkey就可以判斷待查找數(shù)據(jù)是否存在HFile中,而ROWCOL模式只對指定列的隨機(jī)讀由優(yōu)化作用温技,通常建議選擇ROW模式

4.2.4革为、TTL:數(shù)據(jù)失效時間

4.2.5、COMPRESSION:壓縮算法舵鳞,建議SNAPPY,壓縮率震檩,編碼速率等方面表現(xiàn)更加優(yōu)秀

4.2.6、DATA_BLOCK_ENCODING:數(shù)據(jù)編碼算法蜓堕,生產(chǎn)不使用PREFIX_TREE編碼算法

4.2.7抛虏、BLOCKSIZE: 文件塊大小,默認(rèn)是64k,建議選擇默認(rèn)套才。

4.2.8迂猴、DFS_REPLICATION:數(shù)據(jù)Block在HDFS上的副本數(shù),默認(rèn)是3

4.2.9背伴、IN_MEMORY:如果表中某些列的數(shù)據(jù)量不大沸毁。但是進(jìn)行g(shù)et/scan操作頻率又特別高,而且要求延遲更低傻寂,此時采用IN_MEMORY效果比較好

4.3息尺、表屬性設(shè)置

4.3.1、預(yù)分區(qū)設(shè)置屬性:建議所有表線上進(jìn)行預(yù)分區(qū)疾掰,NUMREGIONS表示預(yù)分區(qū)個數(shù)掷倔。SPLITALGO代表切分策略

4.3.2、MAX_FILESIZE:最大文件大小个绍,默認(rèn)是10G勒葱,配合Region的分裂

4.3.3浪汪、READONLY:只讀表,默認(rèn)為false

4.3.4凛虽、COMPACTION_ENABLED:compaction是否開啟死遭,默認(rèn)為true,表示允許Minor/Major Compaction自動執(zhí)行

4.3.5、MEMSTORE_FLUSHSIZE:單個MemStore的大小凯旋,默認(rèn)128M

4.3.6呀潭、DURABLITY:WAL持久化級別

SKIP_WAL:只寫緩存,不寫HLog至非,不可取

ASYNC_WAL:異步寫入HLog

SYNC_WAL:同步寫入日志文件钠署,數(shù)據(jù)只是被寫入文件系統(tǒng)緩存中并沒有真正落盤。默認(rèn)是此級別

FSYNC_WAL:同步將數(shù)據(jù)寫入日志文件并強(qiáng)制落盤荒椭,這是最嚴(yán)格的寫入級別谐鼎,保證數(shù)據(jù)不丟失,性能相對較差

USER_DEFAULT:如果用戶沒有指定持久化級別趣惠,默認(rèn)HBase使用SYN_WAL等級持久化數(shù)據(jù)put.setDurability(Durability.SYNC_WAL);

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末狸棍,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子味悄,更是在濱河造成了極大的恐慌草戈,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件侍瑟,死亡現(xiàn)場離奇詭異唐片,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)涨颜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門牵触,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人咐低,你說我怎么就攤上這事揽思。” “怎么了见擦?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵钉汗,是天一觀的道長。 經(jīng)常有香客問我鲤屡,道長损痰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任酒来,我火速辦了婚禮卢未,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己辽社,他們只是感情好伟墙,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著滴铅,像睡著了一般戳葵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上汉匙,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天拱烁,我揣著相機(jī)與錄音,去河邊找鬼噩翠。 笑死戏自,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的伤锚。 我是一名探鬼主播擅笔,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼见芹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蠢涝,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤玄呛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后和二,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體徘铝,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年惯吕,在試婚紗的時候發(fā)現(xiàn)自己被綠了惕它。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡废登,死狀恐怖淹魄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情堡距,我是刑警寧澤甲锡,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站羽戒,受9級特大地震影響缤沦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜易稠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一缸废、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦企量、人聲如沸测萎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绳泉。三九已至,卻和暖如春姆泻,著一層夾襖步出監(jiān)牢的瞬間零酪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工拇勃, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留四苇,地道東北人。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓方咆,卻偏偏與公主長得像月腋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子瓣赂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 版權(quán)聲明:本文為博主原創(chuàng)文章榆骚,未經(jīng)博主允許不得轉(zhuǎn)載。http://www.reibang.com/p/84824...
    Moon_魔寬閱讀 2,049評論 2 2
  • 一煌集、簡介 Hbase:全名Hadoop DataBase妓肢,是一種開源的,可伸縮的苫纤,嚴(yán)格一致性(并非最終一致性)的分...
    菜鳥小玄閱讀 2,369評論 0 12
  • HBase深入分析之RegionServer 所有的用戶數(shù)據(jù)以及元數(shù)據(jù)的請求碉钠,在經(jīng)過Region的定位,最終會落在...
    絲絲雨涼閱讀 8,986評論 0 3
  • HBase存儲架構(gòu)圖 HBase Master 為Region server分配region 負(fù)責(zé)Region s...
    kimibob閱讀 5,571評論 0 52
  • 借用HBase官網(wǎng)對其的介紹來初步認(rèn)識一下HBase卷拘,當(dāng)你需要對大量的數(shù)據(jù)進(jìn)行隨機(jī)喊废,實(shí)時的讀/寫訪問時,請使用Ap...
    MrSocean閱讀 3,813評論 0 3