91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

克什克腾旗| 农安县| 五寨县| 葫芦岛市| 即墨市| 新泰市| 江津市| 林州市| 绥棱县| 龙里县| 洛宁县| 凤山市| 浠水县| 白玉县| 古交市| 漳平市| 汝州市| 绥江县| 浦北县| 札达县| 阿图什市| 尚义县| 海宁市| 垫江县| 米林县| 青河县| 安宁市| 洛扎县| 六盘水市| 来宾市| 会昌县| 佳木斯市| 上犹县| 尚志市| 车险| 大渡口区| 石首市| 保定市| 邵武市| 贡山| 望江县|