HBase簡介和分散式叢集的搭建
1,HBase是什麼?
1,概念
HBase是一個高可靠性、高效能、可伸縮、分散式、基於列儲存的非關係型(NoSQL)資料庫。
- 列式儲存和行式儲存?
- 非關係型資料庫與關係型資料庫?
2,與Google Bigtable的不同之處
服務 | Google Bigtables | HBase |
---|---|---|
檔案儲存系統 | Google Bigtable:GFS | HBase:HDFS |
海量資料計算框架 | Google Bigtable:MapReduce | HBase:MapReduce |
應用程式協調服務 | Google Bigtable:Chubby | HBase:ZooKeeper |
3, 何時採用 HBase?
- (1)需適應不同種類資料格式和資料來源,不能預先嚴格定義模式
- (2)需處理大規模資料
- (3)不強調資料之間的關係,需儲存半結構化和非結構化資料
- (4)資料非常稀疏,有大量為 NULL 的字串
- (5)想要更好的進行擴充套件
4,HBase 叢集結構
HBase 分散式叢集搭建
1,前期裝備
-
(1)同步網路時間
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #修改時區 ntpdate cn.pool.ntp.org #同步網路時間 date #檢查時間是否修改成功
2,HBase1.3.1 分散式叢集搭建
-
2,上傳並解壓
將 HBase 安裝包上傳到 Linux 伺服器
解壓命令:tar -zxvf hbase-1.3.1-bin.tar.gz
-
3,修改配置檔案
-
hbase-env.sh
1,修改JDK安裝路徑
export JAVA_HOME=/home/shiny/Desktop/software/jdk1.8.0_73
2,不引用HBase自帶的ZooKeeper,使用自己安裝的 -
hbase-site.xml
1,指定 HBase 在 HDFS 上儲存的路徑<property> <name>hbase.rootdir</name> <value>hdfs://hadoop01:9000/hbase</value> </property>
2,指定 HBase 是分散式的
<property> <name>hbase.cluster.distributed</name> <value>true</value> </property>
3,指定 ZooKeeper 節點,多個用“,”分割
<property> <name>hbase.zookeeper.quorum</name> <value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value> </property>
4,ZooKeeper配置檔案zoo.cfg中的dataDir。ZooKeeper儲存資料庫快照的位置
<property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/shiny/zkdata</value> </property>
-
-
4,分發到其它節點
scp -r hbase-1.3.1/ [email protected]:$PWD scp -r hbase-1.3.1/ [email protected]:$PWD
-
5,配置環境變數
1,編輯.bash_profile檔案vim /home/theone/.bash_profile
2,新增環境變數:
export HBASE_HOME=/home/theone/Desktop/software/hbase-1.3.1/ export PATH=$PATH:$HBASE_HOME/bin
3,立即執行檔案
source /home/theone/.bash_profile
-
6,啟動 HBase 叢集
1,啟動hadoop叢集,(在主節點上執行命令)start-dfs.sh start-yarn.sh
2,啟動 ZooKeeper 叢集,(在所有節點上執行命令)
zkServer.sh start
3,啟動 HBase 叢集,(在哪個節點啟動哪個節點就是主節點)
start-hbase.sh
啟動頁面有警告資訊:
解決方案:
1,將 JDK 修改為 1.7 版本
2,修改 HBase 的配置檔案hbase-env.sh關閉 HBase 叢集,命令:stop-hbase.sh
修改配置檔案hbase-env.sh,將以下兩行配置註釋掉(每個節點)
再次啟動 HBase 叢集,警告資訊消失 -
7,驗證 HBase 叢集
檢查程序,命令:jps
登入Web UI 頁面:主節點:16010
-
8,單步啟動
3,常見異常
HRegionServer 程序啟動後立即退出
多臺伺服器之間 HBase 預設的容忍時間差為 30s
原因:由於HBase 叢集伺服器時間不同步