Hbase hfile索引再次探究

HFile數(shù)據(jù)完整索引流程

1:數(shù)據(jù)不大的時(shí)候只有一層。

2:數(shù)據(jù)多的時(shí)候有且最多三層。

3:最下面一層為數(shù)據(jù)層。

圖中紅線表示一次查詢的索引過(guò)程(HBase中相關(guān)類為HFileBlockIndex和HFileReaderV2),基本流程可以表示為:


1. 用戶輸入rowkey為fb,在root index block中通過(guò)二分查找定位到fb在’a’和’m’之間,因此需要訪問(wèn)索引’a’指向的中間節(jié)點(diǎn)。因?yàn)閞oot index block常駐內(nèi)存,所以這個(gè)過(guò)程很快。

2. 將索引’a’指向的中間節(jié)點(diǎn)索引塊加載到內(nèi)存,然后通過(guò)二分查找定位到fb在index ‘d’和’h’之間,接下來(lái)訪問(wèn)索引’d’指向的葉子節(jié)點(diǎn)。

3. 同理,將索引’d’指向的中間節(jié)點(diǎn)索引塊加載到內(nèi)存,一樣通過(guò)二分查找定位找到fb在index ‘f’和’g’之間,最后需要訪問(wèn)索引’f’指向的數(shù)據(jù)塊節(jié)點(diǎn)。

4. 將索引’f’指向的數(shù)據(jù)塊加載到內(nèi)存,通過(guò)遍歷的方式找到對(duì)應(yīng)的keyvalue。

上述流程中因?yàn)橹虚g節(jié)點(diǎn)、葉子節(jié)點(diǎn)和數(shù)據(jù)塊都需要加載到內(nèi)存,所以io次數(shù)正常為3次。但是實(shí)際上HBase為block提供了緩存機(jī)制,可以將頻繁使用的block緩存在內(nèi)存中,可以進(jìn)一步加快實(shí)際讀取過(guò)程。所以,在HBase中,通常一次隨機(jī)讀請(qǐng)求最多會(huì)產(chǎn)生3次io,如果數(shù)據(jù)量?。ㄖ挥幸粚铀饕?,數(shù)據(jù)已經(jīng)緩存到了內(nèi)存,就不會(huì)產(chǎn)生io。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • HBase存儲(chǔ)架構(gòu)圖 HBase Master 為Region server分配region 負(fù)責(zé)Region s...
    kimibob閱讀 5,759評(píng)論 0 52
  • HBase那些事 @(大數(shù)據(jù)工程學(xué)院)[HBase, Hadoop, 優(yōu)化, HadoopChen, hbase]...
    分癡閱讀 4,121評(píng)論 3 17
  • 該文檔是用Hbase默認(rèn)配置文件生成的,文件源是Hbase-default.xml hbase.rootdir 這...
    我是嘻哈大哥閱讀 4,873評(píng)論 0 7
  • 原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明原作地址:http://www.itdecent.cn/p/0f9578df7fbc 一. 架...
    EchoZhan閱讀 15,270評(píng)論 4 33
  • 很少寫(xiě)技術(shù)博客,一是覺(jué)得自己技術(shù)有限,怕誤人子弟;二是文筆較差,比較排斥寫(xiě)作之類的工作。話說(shuō)不鍛煉,哪會(huì)有進(jìn)步呢,...
    奔跑的番茄醬閱讀 42,602評(píng)論 7 132

友情鏈接更多精彩內(nèi)容