HBase客戶端Rpc的重試機(jī)制以及客戶端參數(shù)優(yōu)化。-創(chuàng)新互聯(lián)

hbase客戶端重試機(jī)制如何保證系統(tǒng)的容錯(cuò)性和低延遲性
HBase客戶端Rpc的重試機(jī)制以及客戶端參數(shù)優(yōu)化。
HBase客戶端基于退避算法的重試機(jī)制
1、業(yè)務(wù)用戶一方面比較關(guān)注HBase本身服務(wù)的讀寫(xiě)性能:吞吐量以及讀寫(xiě)延遲,
2、另一方面也會(huì)比較關(guān)注HBase客戶端使用上的問(wèn)題,主要集中在兩個(gè)方面:是否提供了重試機(jī)制來(lái)保證系統(tǒng)操作的容錯(cuò)性?是否有必要的超時(shí)機(jī)制保證系統(tǒng)能夠fastfail,保證系統(tǒng)的低延遲特性?
3、HBase客戶端提供的重試機(jī)制,并通過(guò)配置合理的參數(shù)使得客戶端在保證一定容錯(cuò)性的同時(shí)還能夠保證系統(tǒng)的低延遲特性。

在措勤等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站開(kāi)發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,成都全網(wǎng)營(yíng)銷(xiāo)推廣,外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè),措勤網(wǎng)站建設(shè)費(fèi)用合理。

RpcRetryingCall函數(shù)是Rpc請(qǐng)求重試機(jī)制的實(shí)現(xiàn),所以可以有兩點(diǎn)推斷:
1、HBase客戶端請(qǐng)求在那個(gè)時(shí)間段網(wǎng)絡(luò)有異常導(dǎo)致rpc請(qǐng)求失敗,進(jìn)入重試邏輯
2、根據(jù)HBase的重試機(jī)制(退避機(jī)制),每?jī)纱沃卦嚈C(jī)制之間會(huì)休眠一段時(shí)間,即上圖115行代碼,這個(gè)休眠時(shí)間太長(zhǎng)導(dǎo)致這個(gè)線程一直處于TIME_WAITING狀態(tài)。

出現(xiàn)的將近幾個(gè)小時(shí)的堵塞無(wú)請(qǐng)求,除非2中情況
情況1:配置有問(wèn)題:需要客戶端檢查hbase.client.pause和hbase.client.retries.number兩個(gè)參數(shù)配置出現(xiàn)異常,比如hbase.client.pause參數(shù)如果手抖配成了10000,就有可能出現(xiàn)幾個(gè)小時(shí)阻塞的情況
//
HBase 客戶端暫停
hbase.client.pause = 100 毫秒 默認(rèn)
HBase 客戶端大重試次數(shù)
hbase.client.retries.number = 35 默認(rèn)次數(shù)

情況2:網(wǎng)絡(luò)持續(xù)有問(wèn)題:如果線程1持有全局鎖重試失敗之后退出,線程2競(jìng)爭(zhēng)到這把鎖,此時(shí)網(wǎng)絡(luò)依然有問(wèn)題,線程2會(huì)再次進(jìn)入重試,重試8min之后失敗退出,循環(huán)下去,也有可能出現(xiàn)幾個(gè)小時(shí)阻塞的情況
//小結(jié):情況1 出現(xiàn)的概率很低,基本上出現(xiàn) 客戶端請(qǐng)求無(wú)響應(yīng),堵塞無(wú)請(qǐng)求的情況,網(wǎng)絡(luò)持續(xù)有問(wèn)題是很大的原因。
通過(guò)監(jiān)控和小伙伴確認(rèn)之后發(fā)現(xiàn):在事發(fā)當(dāng)時(shí)(凌晨0點(diǎn)~早上6點(diǎn))確實(shí)存在很多服務(wù)因?yàn)樵凭W(wǎng)絡(luò)升級(jí)異常發(fā)生抖動(dòng)的情況出現(xiàn)。

HBase Rpc重試機(jī)制

HBase的重試機(jī)制是這次異常發(fā)生的關(guān)鍵點(diǎn),有必要對(duì)其進(jìn)行一次解析。HBase執(zhí)行rpc失敗之后會(huì)執(zhí)行重試操作,
重試的大次數(shù)可以通過(guò)配置文件配置,對(duì)應(yīng)的參數(shù)為hbase.client.retries.number,0.98版本中該參數(shù)的默認(rèn)值為31。
//在一定時(shí)間內(nèi),不斷的重試后,還沒(méi)有成功響應(yīng)的話,最后會(huì)放棄連接到集群

客戶端參數(shù)優(yōu)化實(shí)踐

很顯然,根據(jù)上面第二部分和第三部分的介紹,一旦在網(wǎng)絡(luò)出現(xiàn)抖動(dòng)的異常情況下,默認(rèn)最差情況下一個(gè)線程會(huì)存在8min左右的重試時(shí)間,從而會(huì)導(dǎo)致其他線程都阻塞在regionLockObject這把全局鎖上。為了構(gòu)建一個(gè)更穩(wěn)定、低延遲的HBase系統(tǒng),除過(guò)需要對(duì)服務(wù)器端參數(shù)做各種調(diào)整外,客戶端參數(shù)也需要做相應(yīng)的調(diào)整:

  1. hbase.client.pause:默認(rèn)為100,可以減少為50
    //cdh中 HBase 客戶端暫停
    hbase.client.pause = 100毫秒
  2. hbase.client.retries.number:默認(rèn)為31,可以減少為21
    //HBase 客戶端大重試次數(shù)
    hbase.client.retries.number = 35

修改后,通過(guò)上面算法可以計(jì)算出每次連接集群重試之間的暫停時(shí)間將依次為:
[50,100,150,250,500,1000,2000,5000,5000,5000,5000,10000,10000,…,10000]
客戶端將會(huì)在2min內(nèi)重試20次,然后放棄連接到集群,進(jìn)而會(huì)再將全局鎖交給其他線程,執(zhí)行其他請(qǐng)求。

詳細(xì)講解了HBase Rpc的重試機(jī)制以及客戶端參數(shù)優(yōu)化。

參考鏈接
HBase最佳實(shí)踐 – 客戶端重試機(jī)制 http://hbasefly.com/2016/06/04/hbase-client-1/

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前文章:HBase客戶端Rpc的重試機(jī)制以及客戶端參數(shù)優(yōu)化。-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://muchs.cn/article4/dphjie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作App開(kāi)發(fā)、小程序開(kāi)發(fā)外貿(mào)網(wǎng)站建設(shè)、品牌網(wǎng)站制作、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)