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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Hbase随笔

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

大數據時代的數據量是超大規模的,傳統的關系數據庫已經很難存儲和管理這些數據了,為了存儲海量數據,我們有了HDFS,它可以把成千上萬臺服務器上的硬盤聚集成一塊超級大的硬盤,為了讓這些數據產生價值,我們有了mapreduce,它可以計算這個超大硬盤的數據,面對這么大的數據量我們還有一個迫切的需求那就是如何快速檢索出我們想要的數據,而這個功能就是由hbase來承擔。

  那么如此海量數據快速檢索技術原理又是怎樣的呢?我覺得原理很簡單就是索引技術。Hbase通過rowkey來區別不同類型數據,通過列族把經常需要一起被查詢出來的數據放在一起,例如我們如果要做一個電商平臺的交易記錄業務表設計,對于電商平臺下的商戶他其實只需要查詢出自己的交易信息,而不會去關心其他商戶的交易信息,那么我們就可以把商戶號作為rowkey,每一個商戶的交易的信息我們就放在一個列族里,商戶號這樣的信息就像數據在硬盤上的門牌號,我們一傳入這個值做查詢,hbase就能快速找到數據存儲的位置,這就是hbase能快速檢索到數據的原理。

  上面講到的原理只是業務抽象的角度來說,在hbase底層它就是根據上面說到的這些原理來設計的,hbase里面有region的概念,region是一個數據集合,那么什么樣的數據會放置到某一個region里呢?hbase是根據rowkey來把同一類的數據放置在一個region里,rowkey下面就是列族,列族對應的底層存儲就是hfile,hfile放置在rowkey對應的region下,所以當我們查詢時候我們很容易通過業務規則找到我們設計好的rowkey,找到了rowkey就找到region,那么region下存儲的hfile列族信息也就可以全部查詢出來了。

  Rowkey其實就是hbase的索引,也可以說是hbase官方給出的唯一索引,因此很多資料里說hbase只有一級索引,這個一級索引就指的就是rowkey,因此如何設計rowkey就是一門大學問了,時常我們一行數據不能滿足我們復雜的查詢要求,我們需要跨行就像scan那么掃描多行數據,而region里的行都是按照一定順序排列的,這個順序就是字典順序,這個我在以前一篇文章里提到過,所以碰到這種情況,我們一般會通過md5將key散列,這樣相鄰的數據行會排列在一起,底層存儲數據時候也會存儲在同一個地方(相同region)或者是相互靠近的地方(相鄰region),這樣也就可以提升查詢的效率。

  Hbase內部有兩張表一個是-ROOT-表和.META.表,客戶端程序就是像我上面給出的示例程序首先訪問zookeeper,通過zookeeper獲取含有-ROOT-的region服務器名,通過-ROOT-的region服務器可以查詢到.META.表里行鍵rowkey對應的region位置,而-ROOT-和.META.客戶端訪問后就會緩存起來。

  其實hbase的表設計本身非常簡單,對外接口也沒有關系數據庫那么豐富,我最近學習hbase,覺得hbase基本都沒有關系數據庫里那些計算函數,可見hbase只是提供一種能快速檢索海量數據的一種計算模型而已。

轉載于:https://www.cnblogs.com/zourui4271/p/6034716.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

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

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