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

溫馨提示×

溫馨提示×

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

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

HBase是怎么做到毫秒級查詢的

發布時間:2021-12-09 11:55:47 來源:億速云 閱讀:261 作者:iii 欄目:大數據

這篇文章主要講解了“HBase是怎么做到毫秒級查詢的”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“HBase是怎么做到毫秒級查詢的”吧!

1. 緩存

HBase有兩塊主要的內存緩存,MemStore 和 BlockCache。

具體的過程如下:

  • 一個查詢過來 regionserver 后首先用 MemStoreScanner 搜索 MemStore 里是否有所查的 rowKey ,這一步在內存中,所以是很快的。

  • 如果不在 memstore 中,會經過一系列的索引尋址會定位到 block 的位置。

  • 如果 block 在 BlockCache 緩存中則可以直接在內存中操作,速度很快,不需要再進行一次 IO 將整個 block 讀取到內存中。

2. 過濾

  • RegionServer 啟動的時候就會把每個HFile的起止 rowkey 加載到內存中,在定位 HFile 的時候可以過濾掉大部分HFile;


  • 同時同樣是加載到內存的 Bloom Block 也會通過之前說的 bloomFilter 也會過濾掉大部分一定不包含所查rowKey的HFile。

3. 索引

經過了上面的過濾,其實只剩下很少一部分的HFile需要去檢索了,HBase有三級索引,第一級索引會常駐內存,二三級的索引會以block的形式存在HFile中。

索引相關更細節的東西可以看下這篇 HBase篇(4)-你不知道的HFileHBase篇(4)-你不知道的HFile

另外可以提一下,因為HBase是多版本共存的,所以結果可能是會有多個的,因此檢索的過程不是找到一個就返回了,而是要找到所有的,然后將結果合并。


HBase的各個角色之間是怎么協調工作的?  

先說說Hbase主要包含的角色: HMaster/HRegionServer/Zookeeper

1. HRegionServer 

負責實際數據的讀寫. 當訪問數據時, 客戶端最終會直接與 RegionServer 通信。HBase的表根據Row Key的區域分成多個Region, 一個Region包含這這個區域內所有數據. 而Region server負責管理多個Region, 負責在這個Region server上的所有region的讀寫操作.

2.  HMaster 

  • 負責管理Region的位置, DDL(新增和刪除表結構);

  • 協調 RegionServer,在集群處于數據恢復或者動態調整負載時,分配Region到某一個 RegionServer 中;

  • 管控集群,監控所有 Region Server 的狀態;

  • 提供DDL相關的API, 新建(create),刪除(delete)和更新(update)表結構;

3.  Zookeeper 

負責維護和記錄整個Hbase集群的狀態。

zookeeper探測和記錄Hbase集群中服務器的狀態信息.如果zookeeper發現服務器宕機,它會通知Hbase的master節點。master 節點宕機,則會通知 backup 變成 master。


說說 HBase 的 LSM Tree?

LSM Tree即是日志結構合并樹。

先說日志結構:

日志的特點是它是順序追加寫的,可以保證非常好的寫操作性能,但是從日志文件中讀一些數據將會比寫操作需要更多的時間,需要倒序掃描,直接找到所需的內容。

LSM tree是通過把隨機寫的數據寫到內存,然后定期flush到磁盤,對于磁盤來說,讓所有的操作順序化,而不是隨機讀寫。

再說說合并樹:

LSM Tree的原理是把一棵大樹拆分成N棵小樹,它首先寫入內存中即是小樹,隨著小樹越來越大,會flush到磁盤中,磁盤中的樹定期可以做merge操作,合并成一棵大樹,以優化讀性能。

感謝各位的閱讀,以上就是“HBase是怎么做到毫秒級查詢的”的內容了,經過本文的學習后,相信大家對HBase是怎么做到毫秒級查詢的這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

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

AI

石门县| 南郑县| 西吉县| 交口县| 长丰县| 哈密市| 云和县| 博乐市| 马尔康县| 涟水县| 塔城市| 额济纳旗| 格尔木市| 张家港市| 郧西县| 习水县| 金昌市| 忻城县| 岳普湖县| 启东市| 河源市| 万盛区| 静宁县| 皮山县| 宁武县| 库伦旗| 西藏| 阳原县| 沭阳县| 天镇县| 健康| 疏附县| 固始县| 长治市| 陆良县| 中山市| 依兰县| 永登县| 云安县| 丰原市| 祁阳县|