HBase是Hadoop的分散式資料庫,用於大資料儲存。是獨立於Hadoop但依賴其HDFS的另一個開源專案。專案的目標是用於支援大資料表:十億級的行數和百萬級的列數。Hbase也是個分散式的、開源的、描述性的、非關係型資料庫模型。Apache HBase資料庫在Hadoop和HDFS頂層提供Bigtable-like的容量,也即是說,在Hadoop提供的HDFS檔案系統上執行的HBase資料庫,將發揮分散式資料庫更好的效能,若用OS支援的原生檔案系統(如ext3,ext4,NTFS等),也能執行,但不建議這樣做。
HBase基本架構概述:
在HBase底層,通過HDFS和ZooKeeper協調資料儲存和訊息傳導。而上層的功能即是Master和RegionServer提供,這四者各自成為一個程式。HDFS不用解釋,Master作為資料庫叢集的核心節點,擔負起協同排程的任務。而HBase可以指定備援Master(backup master),這樣在主Master掛掉後可以由備援Master頂替上。
HBase可以在偽分散式下執行,也可以搭建真正的叢集。
偽分散式執行模式下,HMaster、ZooKeeper、HRegionServer執行在不同的程式,但還是在同一個實體機上。
Master程式被命名為HMaster,可以通過執行JDK的jps工具檢視。每個HMaster預設會使用三個埠(16010,16020,16030),在啟動Backup HMaster時,指定一個offset,這樣埠號就可以不會衝突了。offset將加在預設埠上,作為這個Backup的開放埠。命令如下:
bin/local-master-backup.sh start 2 3 5
這樣有三個備援主機啟動,埠號分別是(16012,16022,16032)、(16013,16023,16033)、(16015,16025,16035)。
同樣,使用stop命令即可關閉。
同理,使用local-regionservers.sh 可以開啟和關閉本地的多個RegionServer。使用方法和上面的HMaster類似,RegionServer同樣佔用兩個預設埠(16200,16300)。