亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

宁陕县| 松桃| 昆明市| 东海县| 汪清县| 镶黄旗| 汉沽区| 梓潼县| 扬中市| 延长县| 宜兴市| 锦屏县| 富川| 建阳市| 仁怀市| 凤城市| 宜昌市| 同德县| 巴楚县| 杭锦后旗| 桦南县| 肥西县| 望奎县| 山东省| 定安县| 敦煌市| 左贡县| 十堰市| 双城市| 根河市| 阿瓦提县| 同仁县| 荆州市| 泾源县| 东兴市| 长兴县| 玛曲县| 邓州市| 耿马| 宜州市| 汾西县|