Hbase簡介
- Hbase是一個分布式的存盤系統
- Hbase利用Hadoop HDFS作為其檔案存盤系統,利用Hadoop MapReduce來處理Hbase中的海量資料,利用Zookepper作為協調工具
- Hbase構建在HDFS之上,內部管理的檔案全部存盤在HDFS中
- 實際就是一張極大的、非常稀疏的,存盤在分布式檔案系統上的表
Hbase純在的意義
- hdfs只能是存盤檔案的,最多是你只能不停的往檔案的末尾不停的追加資料.,不支持資料隨機查找,不支持增量資料處理,不支持資料更新
- 傳統關系型資料庫系統已無法適應大型分布式資料存盤的需要
- 關系模型對資料的操作讓資料的存盤變得復雜
Hbase表的特點
- 大:一個表可以有數十億行,上百萬列;
- 無模式:每行都有一個可排序的主鍵和任意多的列,列可以根據需要動態的增加,同一張表中不同的行可以有截然不同的列;
- 面向列:面向列(族)的存盤和權限控制,列(族)獨立檢索;
- 稀疏:對于空(null)的列,并不占用存盤空間,表可以設計的非常稀疏;
資料多版本:每個單元中的資料可以有多個版本,默認情況下版本號自動分配,是單元格插入時的時間戳(后邊會提到);- 資料型別單一:HBase中的資料都是字串,沒有型別
Hbase資料模型
- 資料存放在帶標簽的表中(表由rows(行)和columns組成)
- 單元格(table cells)有版本
- 列組成列族
- RowKey(行鍵)和ColumnKey(列鍵)是二進制值byte[ ],按字典順序排序
- Timestamp(時間戳)是一個64位整數
- value是一個未解釋的位元組陣列byte[ ]
- 表中的不同行可以擁有不同數量的成員,即支持“動態模式”模型

ps:ColumnFamily(列族)
Hbase行的特點
- 字串、整數、二進制串甚至串行化的結構都可以作為行鍵
- 表按照行鍵的“逐位元組排序”順序對行進行有序化處理
- 表內資料非常‘稀疏’,不同的行的列的數完全目可以大不相同
- 可以只對一行上“鎖”
- 對行的寫操作是始終是“原子”的
Hbase列的特點
- 列必須用‘族’(family)來定義
- 任意一列有如下形式 “族:標簽”
- 其中,族和標簽都可為任意形式的串
- 物理上將同“族”資料存盤在一起
- 資料可通過時間戳區分版本
資料模型總結
- 表是存放資料的,表由行和列組成
資料模型 - Row Key: 行鍵,Table的主鍵,Table中的記錄按照Row Key排序
- Timestamp: 時間戳,每次資料操作對應的時間戳,可以看作是資料的version number
- Column Family:列簇,Table在水平方向有一個或者多個Column Family組成,一個Column Family中可以有任意多個Column組成,即Column Family支持動態擴展,無需預先定義Column的數量以及型別,所有Column均以二進制格式存盤,用戶需要自行進行型別轉換,
Hbase架構體系
- Client(客戶端)包含訪問HBase的介面,client維護著一些cache 來加快對HBase的訪問,比如region的位置資訊
- Zookeeper
- 保證任何時候,集群中只有一個running master
- 存貯所有Region的尋址入口
- 實時監控Region Server 的狀態,將Region server 的上線和下線資訊,實時通知Master
- 存盤HBase的schema,包括有哪些table,每個table有哪些column family
- Master可以啟動多個HMaster,通過Zookeeper的Master Election機制保證總有一個Master運行
- 為Region server 分配region
- 負責region server 的負載均衡
- 發現失效的region server 并重新分配其上的region
- Region Server
- 維護Master 分配給它的region,處理對這些region 的IO 請求(向hdfs中讀寫資料,是hbase中最核心的模塊)
- 負責切分在運行程序中變得過大的region
Hbase總覽
- HBase中有兩張特殊的Table,-ROOT-和.META.
- .META.:記錄了用戶表的Region資訊,.META.可以有多個regoin
- -ROOT-:記錄了.META.表的Region資訊,-ROOT-只有一個region
- Zookeeper中記錄了-ROOT-表的location
- Client訪問用戶資料之前需要首先訪問zookeeper,然后訪問-ROOT-表,接著訪問.META.表,最后才能找到用戶資料的位置去訪問
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/274037.html
標籤:其他
上一篇:輕量級網路的學習(僅供自己學習觀看)(Backbone系列)
下一篇:一文徹底搞定Hystrix!
