您好,登錄后才能下訂單哦!
一、簡介
HBase是基于列存儲、構建在HDFS上的分布式存儲系統,其主要功能是存儲海量結構化數據。
HBase構建在HDFS之上,因此HBase也是通過增加廉價的PC機提高系統運行和存儲的能力。
HBase中存儲的表有如下特點:
1、大表:一個表可以有數十億行,上百萬列;
2、無模式:每行都有一個可排序的主鍵和任意多的列,列可以根據需要動態的增加,同一張表中不同的行可以有截然不同的列;
3、面向列:面向列(族)的存儲和權限控制,列(族)獨立檢索;
4、稀疏:對于空(null)的列,并不占用存儲空間,表可以設計的非常稀疏;
5、數據多版本:每個單元中的數據可以有多個版本,默認情況下版本號自動分配,是單元格插入時的時間戳;
6、數據類型單一:Hbase中的數據都是字符串,沒有類型。
二、hbase的適用場景
1、存在高并發讀寫
2、表結構的列族經常需要調整
3、存儲結構化或半結構化數據
4、高并發的key-value存儲
5、key隨機寫入,有序存儲
6、針對每個key保存一個固定大小的集合 多版本
同樣hbase數據也存在不適用的場景
1、由于hbase只能提供行鎖,它對分布式事務支持不好
2、對于查詢操作中的join、group by 性能很差
3、查詢如果不使用row-key查詢,性能會很差,因為此時會進行全表掃描,建立二級索引或多級索引需要同時維護一張索引表
4、高并發的隨機讀支持有限
三、hbase基本架構及組件說明
由上圖可知,hbase包括Clinet、HMaster、HRegionServer、ZooKeeper組件
各組件功能介紹:
1、Client
Client主要通過ZooKeeper與Hbaser和HRegionServer通信,對于管理操作:client向master發起請求,對于數據讀寫操作:client向regionserver發起請求
2、ZooKeeper
zk負責存儲_root_表的地址,也負責存儲當前服務的master地址,regsion server也會將自身的信息注冊到zk中,以便master能夠感知region server的狀態,zk也會協調active master,也就是可以提供一個選舉master leader,也會協調各個region server的容災流程
3、HMaster
master可以啟動多個master,master主要負責table和region的管理工作,響應用戶對表的CRUD操作,管理region server的負載均衡,調整region 的分布和分配,當region server停機后,負責對失效的regionn進行遷移操作
4、HRegionServer
region server主要負責響應用戶的IO請求,并把IO請求轉換為讀寫HDFS的操作
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。