閱讀目錄
本文版權歸mephisto和部落格園共有,歡迎轉載,但須保留此段宣告,並給出原文連結,謝謝合作。
文章是哥(mephisto)寫的,SourceLink
序
上一篇,我們講述了Hive的CLI和JDBC,從程式設計和使用的角度進入了Hadoop生態。這裡就介紹下Hadoop DataBase,簡稱HBase。
下面我們開始介紹HBase的介紹及安裝。
介紹
一:定義
HBase是一個分散式的、面向列的開源資料庫,該技術來源於 Fay Chang 所撰寫的Google論文“Bigtable:一個結構化資料的分散式儲存系統”。就像Bigtable利用了Google檔案系統(File System)所提供的分散式資料儲存一樣,HBase在Hadoop之上提供了類似於Bigtable的能力。HBase是Apache的Hadoop專案的子專案。HBase不同於一般的關聯式資料庫,它是一個適合於非結構化資料儲存的資料庫。另一個不同的是HBase基於列的而不是基於行的模式。利用HBase技術可在廉價PC Server上搭建起大規模結構化儲存叢集。
二:架構
Client
包含訪問HBase的介面,並維護cache來加快對HBase的訪問,比如region的位置資訊。
Master
為Region server分配region
負責Region server的負載均衡
發現失效的Region server並重新分配其上的region
管理使用者對table的增刪改查操作
Region Server
Regionserver維護region,處理對這些region的IO請求
Regionserver負責切分在執行過程中變得過大的region
Zookeeper作用
通過選舉,保證任何時候,叢集中只有一個master,Master與RegionServers 啟動時會向ZooKeeper註冊
存貯所有Region的定址入口
實時監控Region server的上線和下線資訊。並實時通知給Master
儲存HBase的schema和table後設資料
預設情況下,HBase 管理ZooKeeper 例項,比如, 啟動或者停止ZooKeeper
Zookeeper的引入使得Master不再是單點故障Write-Ahead-Log(WAL)
每個HRegionServer中都有一個HLog物件,HLog是一個實現Write Ahead Log的類,在每次使用者操作寫入MemStore的同時,也會寫一份資料到HLog檔案中(HLog檔案格式見後續),HLog檔案定期會滾動出新的,並刪除舊的檔案(已持久化到StoreFile中的資料)。當HRegionServer意外終止後,HMaster會通過Zookeeper感知到,HMaster首先會處理遺留的 HLog檔案,將其中不同Region的Log資料進行拆分,分別放到相應region的目錄下,然後再將失效的region重新分配,領取 到這些region的HRegionServer在Load Region的過程中,會發現有歷史HLog需要處理,因此會Replay HLog中的資料到MemStore中,然後flush到StoreFiles,完成資料恢復。
HBase容錯性
Master容錯:
Zookeeper重新選擇一個新的Master
無Master過程中,資料讀取仍照常進行;
無master過程中,region切分、負載均衡等無法進行;
RegionServer容錯:定時向Zookeeper彙報心跳,如果一旦時間內未出現心跳,Master將該RegionServer上的Region重新分配到其他RegionServer上,失效伺服器上“預寫”日誌由主伺服器進行分割並派送給新的RegionServer
Zookeeper容錯:
Zookeeper是一個可靠地服務,一般配置3或5個Zookeeper例項
Region定位流程:
安裝
一:已安裝服務
二:新增服務
三:勾選HBase
四:分佈HBase相關元件
五:分配從節點和客戶端
六:HBase配置
設定HBase的配置。
七:預覽
安裝前預覽。
八:安裝,測試,啟動
開始安裝了,我們耐心的等待。
八:完成
九:效果
我們可以看到ambari的監控介面可以看到已經裝好的HBase
十:shell命令登陸
hbase shell
十一:HBase UI
--------------------------------------------------------------------
到此,本章節的內容講述完畢。
系列索引
本文版權歸mephisto和部落格園共有,歡迎轉載,但須保留此段宣告,並給出原文連結,謝謝合作。
文章是哥(mephisto)寫的,SourceLink