一、HBase概述 1.HBase是Hadoop資料庫,是一個分散式、可擴展的大數據存儲。 HBase是用於對大數據進行隨機、實時讀寫訪問的非關係型資料庫,它的目標托管非常大的表——數十億行N百萬列。 正如Bigtable利用Google文件系統提供的分散式數據存儲一樣,HBase在Hadoop的H ...
一、HBase概述
1.HBase是Hadoop資料庫,是一個分散式、可擴展的大數據存儲。
HBase是用於對大數據進行隨機、實時讀寫訪問的非關係型資料庫,它的目標托管非常大的表——數十億行N百萬列。
正如Bigtable利用Google文件系統提供的分散式數據存儲一樣,HBase在Hadoop的HDFS之上提供類似Bigtable的功能。
2.HBase架構
Zookeeper => ZK中存儲了HMaster的元數據信息
HMaster => 主節點
HRegionServer => 區域伺服器
HLog => 預寫入日誌
HRegion => 區域,可以理解成表
Store => 存儲單元
Memstore => 記憶體的一塊區域,負責寫入數據的緩存
blockcache => 記憶體的一塊區域,負責讀取數據的緩存(圖中未顯示)
storeFile => 寫入磁碟的一個文件,HFile是物理上的存儲單元
3.HBase的作用
HBase通過HRegionServer連接了HDFS的客戶端,然後在存數據時將生成的HFile文件存儲到hdfs中,之後把本地的HFile文件刪除只保留元數據信息。
HBase就是建立在HDFS之上的資料庫。
二、HBase集群的安裝部署
1.準備工作
HBase基於HDFS集群和Zookeeper集群,所以要先安裝hdfs和zk;
安裝完成後去HBase官網下載對應安裝包,本人使用的是1.3.0版本,上傳到集群,解壓,重命名文件為HBase;
HBase官網:hbase.apache.org
2.修改配置文件
進入conf目錄下修改hbase-env.sh和hbase-site.xml文件
(1)vi hbase-env.sh
JAVA_HOME=/root/hd/jdk1.8.0_141
HBASE_MANAGES_ZK=false
(2)vi hbase-site.xml
將下麵的配置信息加入到<configuration></configuration>之中
<!-- 設置namenode所在位置 通過rootdir設置 也就是設置hdfs中存放的路徑 --> <property> <name>hbase.rootdir</name> <value>hdfs://hd1-1:9000/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> <!-- zookeeper集群的位置 --> <property> <name>hbase.zookeeper.quorum</name> <value>hd1-1:2181,hd1-2:2181,hd1-3:2181</value> </property> <!-- hbase的元數據信息存儲在zookeeper的位置 --> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/root/hd/zookeeper-3.4.10/zkData</value> </property>
3.進入regionservers文件(vi regionservers)添加所有節點
hd1-1
hd1-2
hd1-3
4.解決版本依賴不一致問題
進入hbase/lib目錄中,查看hadoop和zookeeper的jar包的版本是否和自己安裝的版本一致,不同則刪除jar包
rm -rf hadoop-*
rm -rf zookeeper-*
然後將與自己版本一致的hadoop和zk依賴包導入到該目錄,jar包如下:
通過sftp導入到linux集群。
5.建立配置信息軟連接
進入hbase/conf目錄下,添加配置(根據自己的路徑修改就好)
ln -s /root/hd/hadoop/etc/hadoop/core-site.xml /root/hd/hbase/conf/
ln -s /root/hd/hadoop/etc/hadoop/hdfs-site.xml /root/hd/hbase/conf/
也可以將這兩個配置複製到hbase/conf目錄下;
6.將配置好的hbase文件夾發送到其他集群機器
scp -r /root/hd/hbase/ hd1-2:/root/hd/
7.啟動hbase集群
(1)先啟動hdfs和zookeeper
start-dfs.sh、zkServer.sh start
(2)啟動hbase(沒有配置環境變數,要在hbase目錄下啟動)
bin/hbase-daemon.sh start master 啟動主節點
bin/hbase-daemon.sh start regionserver 啟動從節點
8.訪問與測試
(1)可以通過你的主機點的IP地址加埠號訪問UI界面
192.168.50.183:16010
(2)啟動shell命令行進行測試
bin/hbase shell
list
這樣,HBase就配置完成了~~