一 HBase的基礎架構
1、HMaster
功能:
- 監控RegionServer
- 處理RegionServer故障轉移
- 處理元數據的變更
- 處理region的分配或移除
- 在空閒時間進行數據的負載均衡
- 通過Zookeeper發佈自己的位置給客戶端
2、RegionServer
功能:
-
負責存儲HBase的實際數據
-
處理分配給它的Region
-
刷新緩存到HDFS
-
維護HLog
-
執行壓縮
-
負責處理Region分片
組件: -
Write-Ahead logs
HBase的修改記錄,當對HBase讀寫數據的時候,數據不是直接寫進磁盤,它會在內存中保留一段時間(時間以及數據量閾值可以設定)。但把數據保存在內存中可能有更高的概率引起數據丟失,爲了解決這個問題,數據會先寫在一個叫做Write-Ahead logfile的文件中,然後再寫入內存中。所以在系統出現故障的時候,數據可以通過這個日誌文件重建。 -
HFile
這是在磁盤上保存原始數據的實際的物理文件,是實際的存儲文件。 -
Store
HFile存儲在Store中,一個Store對應HBase表中的一個列族。 -
MemStore
顧名思義,就是內存存儲,位於內存中,用來保存當前的數據操作,所以當數據保存在WAL中之後,RegsionServer會在內存中存儲鍵值對。 -
Region
Hbase表的分片,HBase表會根據RowKey值被切分成不同的region存儲在RegionServer中,在一個RegionServer中可以有多個不同的region。
二 HBase的集羣環境搭建
注意事項:Hbase強依賴於HDFS以及zookeeper,所以安裝Hbase之前一定要保證Hadoop和zookeeper正常啓動
第一步:下載對應的HBase的安裝包
下載Hbase的安裝包,下載地址如下:
http://archive.apache.org/dist/hbase/2.0.0/hbase-2.0.0-bin.tar.gz
第二步:壓縮包上傳並解壓
將我們的壓縮包上傳到node01服務器的/export/softwares路徑下並解壓
cd /export/softwares/
tar -zxf hbase-2.0.0-bin.tar.gz -C /export/servers/
第三步:修改配置文件
node01機器進行修改配置文件
cd /export/servers/hbase-2.0.0/conf
修改第一個配置文件hbase-env.sh
node01機器進行修改配置文件
註釋掉HBase使用內部zk
cd /export/servers/hbase-2.0.0/conf
vim hbase-env.sh
export JAVA_HOME=/export/servers/jdk1.8.0_141
export HBASE_MANAGES_ZK=false
修改第二個配置文件hbase-site.xml
node01機器進行修改配置文件
修改hbase-site.xml
cd /export/servers/hbase-2.0.0/conf
vim hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://node01:8020/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 0.98後的新變動,之前版本沒有.port,默認端口爲60000 -->
<property>
<name>hbase.master.port</name>
<value>16000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>node01:2181,node02:2181,node03:2181</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/export/servers/zookeeper-3.4.9/zkdatas</value>
</property>
</configuration>
注意:這裏配置了zookeeper的安裝路徑
修改第三個配置文件regionservers
node01機器進行修改配置文件
cd /export/servers/hbase-2.0.0/conf
vim regionservers
node01
node02
node03
創建back-masters配置文件,實現HMaster的高可用
node01機器進行修改配置文件
cd /export/servers/hbase-2.0.0/conf
vim backup-masters
node02
第四步:安裝包分發到其他機器
將我們node01服務器的hbase的安裝包拷貝到其他機器上面去
cd /export/servers/
scp -r hbase-2.0.0/ node02:$PWD
scp -r hbase-2.0.0/ node03:$PWD
第五步:三臺機器創建軟連接
因爲hbase需要讀取hadoop的core-site.xml以及hdfs-site.xml當中的配置文件信息,所以我們三臺機器都要執行以下命令創建軟連接
ln -s /export/servers/hadoop-2.7.5/etc/hadoop/core-site.xml /export/servers/hbase-2.0.0/conf/core-site.xml
ln -s /export/servers/hadoop-2.7.5/etc/hadoop/hdfs-site.xml /export/servers/hbase-2.0.0/conf/hdfs-site.xml
第六步:三臺機器添加HBASE_HOME的環境變量
vim /etc/profile
export HBASE_HOME=/export/servers/hbase-2.0.0
export PATH=:$HBASE_HOME/bin:$PATH
第七步:HBase集羣啓動
第一臺機器執行以下命令進行啓動
cd /export/servers/hbase-2.0.0
bin/start-hbase.sh
警告提示:HBase啓動的時候會產生一個警告,這是因爲jdk7與jdk8的問題導致的,如果linux服務器安裝jdk8就會產生這樣的一個警告
我們可以只是掉所有機器的hbase-env.sh當中的
“HBASE_MASTER_OPTS”和“HBASE_REGIONSERVER_OPTS”配置 來解決這個問題。不過警告不影響我們正常運行,可以不用解決
另外一種啓動方式:
我們也可以執行以下命令單節點進行啓動
啓動HMaster命令
bin/hbase-daemon.sh start master
啓動HRegionServer命令
bin/hbase-daemon.sh start regionserver
第八步:頁面訪問
瀏覽器頁面訪問
http://node01:16010/master-status