HBase是个啥子?
生活随笔
收集整理的這篇文章主要介紹了
HBase是个啥子?
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.1 HBase的是個啥子?
是建立的HDFS之上,提供高可靠性、高性能、列存儲、可伸縮、實時讀寫的分布式數(shù)據(jù)庫系統(tǒng)。
- 在需要實時讀寫隨機訪問超大規(guī)模數(shù)據(jù)集時,可以使用HBase。
1.2 HBase的特點
- 海量存儲
- 可以存儲大批量的數(shù)據(jù)
- 列式存儲
- HBase表的數(shù)據(jù)是基于列族進(jìn)行存儲的,列族是在列的方向上的劃分。
- 極易擴展
- 底層依賴HDFS,當(dāng)磁盤空間不足的時候,只需要動態(tài)增加datanode節(jié)點就可以了
- 可以通過增加服務(wù)器來對集群的存儲進(jìn)行擴容
- 高并發(fā)
- 支持高并發(fā)的讀寫請求
- 稀疏
- 稀疏主要是針對HBase列的靈活性,在列族中,你可以指定任意多的列,在列數(shù)據(jù)為空的情況下,是不會占用存儲空間的。
- 數(shù)據(jù)的多版本
- HBase表中的數(shù)據(jù)可以有多個版本值,默認(rèn)情況下是根據(jù)版本號去區(qū)分,版本號就是插入數(shù)據(jù)的時間戳
- 數(shù)據(jù)類型單一
- 所有的數(shù)據(jù)在HBase中是以字節(jié)數(shù)組進(jìn)行存儲
2. HBase表的數(shù)據(jù)模型
2.1 rowkey行鍵
- table的主鍵,table中的記錄按照rowkey 的字典序進(jìn)行排序
- Row key行鍵可以是任意字符串(最大長度是 64KB,實際應(yīng)用中長度一般為 10-100bytes)
2.2 Column Family列族
- 列族或列簇
- HBase表中的每個列,都?xì)w屬與某個列族
- 列族是表的schema的一部分(而列不是),即建表時至少指定一個列族
- 比如創(chuàng)建一張表,名為user,有兩個列族,分別是info和data,建表語句create 'user', 'info', 'data'
2.3 Column列
- 列肯定是表的某一列族下的一個列,用列族名:列名表示,如info列族下的name列,表示為info:name
- 屬于某一個ColumnFamily,類似于我們mysql當(dāng)中創(chuàng)建的具體的列
2.4 cell單元格
-
指定row key行鍵、列族、列,可以確定的一個cell單元格
-
cell中的數(shù)據(jù)是沒有類型的,全部是以字節(jié)數(shù)組進(jìn)行存儲
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-2dAIG3PB-1613899803638)(assets/Image201911072218.png)]
2.5 Timestamp時間戳
- 可以對表中的Cell多次賦值,每次賦值操作時的時間戳timestamp,可看成Cell值的版本號version number
- 即一個Cell可以有多個版本的值
3. HBase整體架構(gòu)
3.1 Client客戶端
- Client是操作HBase集群的入口
- 對于管理類的操作,如表的增、刪、改操縱,Client通過RPC與HMaster通信完成
- 對于表數(shù)據(jù)的讀寫操作,Client通過RPC與RegionServer交互,讀寫數(shù)據(jù)
- Client類型:
- HBase shell
- Java編程接口
- Thrift、Avro、Rest等等
3.2 ZooKeeper集群
- 作用
-
實現(xiàn)了HMaster的高可用,多HMaster間進(jìn)行主備選舉
-
保存了HBase的元數(shù)據(jù)信息meta表,提供了HBase表中region的尋址入口的線索數(shù)據(jù)
-
對HMaster和HRegionServer實現(xiàn)了監(jiān)控
-
3.3 HMaster
- HBase集群也是主從架構(gòu),HMaster是主的角色,是老大
- 主要負(fù)責(zé)Table表和Region的相關(guān)管理工作:
- 關(guān)于Table
- 管理Client對Table的增刪改的操作
- 關(guān)于Region
- 在Region分裂后,負(fù)責(zé)新Region分配到指定的HRegionServer上
- 管理HRegionServer間的負(fù)載均衡,遷移region分布
- 當(dāng)HRegionServer宕機后,負(fù)責(zé)其上的region的遷移
3.4 HRegionServer
-
HBase集群中從的角色,是小弟
-
作用
- 響應(yīng)客戶端的讀寫數(shù)據(jù)請求
- 負(fù)責(zé)管理一系列的Region
- 切分在運行過程中變大的region
3.5 Region
- HBase集群中分布式存儲的最小單元
- 一個Region對應(yīng)一個Table表的部分?jǐn)?shù)據(jù)
HBase使用,主要有兩種形式:①命令;②Java編程
總結(jié)
以上是生活随笔為你收集整理的HBase是个啥子?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言挑选小白鼠健康指数,2014级下学
- 下一篇: 行人重识别(ReID)概述