中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HBase Client API 簡析

發布時間:2020-06-06 22:25:18 來源:網絡 閱讀:838 作者:MIKE老畢 欄目:關系型數據庫

昨天在飛機上的2個小時看了一遍HBaseClient API,有幾點心得:

1.Put小記錄時最好關閉autoFlush,并合理設置WriterBuffer

因為每次Put都要進行一次RPC調用+WAL(關閉對寫入提升非常大)+Server端處理,如果對于大批量小數據寫入的話RPCRTT消耗的時間就會成為寫入的損耗點,因此可以通過本地緩沖批量提交的方式;默認的WriteBuffer大小是2MB,當autoFlush關閉時,客戶端每次put都會寫入到一個ArrayList內,每10次檢查一次,當size超過WriteBuffer size時則進行一次flushCommit,會將WBPut按照RS進行分組,每個RS進行一次RPC調用處理;

當提交到Server端后,如果發生異常,則會將WB中已經寫入的Put刪除,保留提交失敗的進行異常處理;

不過WB的大小需要合理設置,因為占用本地和RS的內存.

本地內存占用很好估計,而服務端的內存最大消耗則是:hbase.client.write.buffer * hbase.regionserver.handler.count * number ofregion server

2.Scannerbatch/cache設置:

Scan具體的處理流程如下圖:

HBase Client API 簡析

Caching的設置主要影響RSnext的調用(可以理解成面向“行”的batch),而batch則是RSRegionScanner每次nextInternal獲取的keyvalue數(可以理解成面向“列”的batch);

因此具體SCAN調用RPC次數由兩個參數共同決定=cells總數/caching*min(batch,cells/row));

那這里scannernext(n)其實和MYSQL JDBC里的fetch類似,其實是在客戶端loop模擬的,而不是真的在server端進行batch fetch,其實這里的scanmysql 里的cursor是非常類似的,因此理解了一個理解另外一個就是水到渠成了.

不過這里也有WB同樣的問題就是內存消耗,以及網絡傳輸,處理完畢時及時關閉.

3.HConnection的處理:

簡稱HC,都是由sharedHCManager產生,而一個HC是存儲在HCManagerHBASE_INSTANCESMAP類型里,也就是說同一個Client+Conf是共享HC的,這樣有個好處就是首先共享了 ZK連接,其實就是在split/merge時只對一個HC進行metadata refreshOK.

缺點就是這些連接會一直保持到客戶端進程退出,會導致ZK連接超maxClientCnxns異常.

4.Coprocessor

類似對比MySQLtriggerprocedure.稍候再詳細介紹

5.Counter

這個計數器非常好用,不過用HBase做計數compared to redis是不是略重了:P

6.RowLock

這個應該是被禁用掉的東西,RS殺手啊...可以把rpc handler hold住lease.period...

7.管理API

Split/Compact 運維利器:)



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

孝昌县| 安达市| 神农架林区| 苏尼特左旗| 仁怀市| 苍梧县| 鹤山市| 开远市| 张家港市| 海淀区| 蓝田县| 郴州市| 宿州市| 六盘水市| 嘉兴市| 辽中县| 绍兴县| 盈江县| 额敏县| 鱼台县| 应用必备| 五大连池市| 石狮市| 湘阴县| 久治县| 永清县| 宝应县| 高邮市| 灯塔市| 广灵县| 兴仁县| 湘潭市| 汾阳市| 宜宾市| 公安县| 都昌县| 虎林市| 柳州市| 平泉县| 莱州市| 昭苏县|