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