日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hbase读写过程

發布時間:2024/1/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hbase读写过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

1、讀請求過程

  • 客戶端通過zookeeper以及root表和meta表找到目標數據所在的regionserver
  • 聯系regionserver查詢目標數據
  • regionserver定位到目標數據所在的region,發出查詢請求
  • region先在memstore中查找,命中則返回
  • 如果在memstore中找不到,則在storefile中掃描(可能會掃描到很多的storefile—-bloomfilter布隆過濾器)

補充:布隆過濾器參數類型有2種:?
Row、row+col

2、寫請求過程:

  • client向region server提交寫請求
  • region server找到目標region
  • region檢查數據是否與schema一致
  • 如果客戶端沒有指定版本,則獲取當前系統時間作為數據版本
  • 將更新寫入WAL log
  • 將更新寫入Memstore
  • 判斷Memstore的是否需要flush為StoreFile文件。

細節描述:?
hbase使用MemStore和StoreFile存儲對表的更新。?
數據在更新時首先寫入Log(WAL log)和內存(MemStore)中,MemStore中的數據是排序的,當MemStore累計到一定閾值時,就會創建一個新的MemStore,并且將老的MemStore添加到flush隊列,由單獨的線程flush到磁盤上,成為一個StoreFile。于此同時,系統會在zookeeper中記錄一個redo point,表示這個時刻之前的變更已經持久化了。

當系統出現意外時,可能導致內存(MemStore)中的數據丟失,此時使用Log(WAL log)來恢復checkpoint之后的數據。

StoreFile是只讀的,一旦創建后就不可以再修改。因此Hbase的更新其實是不斷追加的操作。當一個Store中的StoreFile達到一定的閾值后,就會進行一次合并(minor_compact, major_compact),將對同一個key的修改合并到一起,形成一個大的StoreFile,當StoreFile的大小達到一定閾值后,又會對 StoreFile進行split,等分為兩個StoreFile。

由于對表的更新是不斷追加的,compact時,需要訪問Store中全部的 StoreFile和MemStore,將他們按row key進行合并,由于StoreFile和MemStore都是經過排序的,并且StoreFile帶有內存中索引,合并的過程還是比較快。

總結

以上是生活随笔為你收集整理的Hbase读写过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。