一、版本介紹
linux : CentOS7
Hadoop : 2.7.6
zookeeper : 3.4.6
hbase : 1.4.6
jdk : jdk1.8.0_171
三個節點的主機名分別為:master、node1、node2
二、安裝Hadoop
HBase 是在 Hadoop 這種分布式框架中提供持久化的數據存儲與管理的工具。在使用 HBase 的分布式集群模式時,前提是必須有 Hadoop 系統,所以我們需要先安裝Hadoop,進行到這一步相信大家已經安裝過Hadoop環境了,如果沒有安裝的可以參考下面的鏈接。
https://www.cnblogs.com/yy-yang/p/14615048.html
三、安裝zookeeper
zookeeper安裝步驟
hbase Client客戶端、Master、Region都會通過心跳機制(RPC通信)與zookeeper保持聯系
1、上傳安裝包到master並解壓
tar -zxvf zookeeper-3.4.6.tar.gz
我這里壓縮包存放在/usr/local/module下,解壓到/usr/local/soft目錄下,讀者需要根據自己的實際情況安裝,下面的環境變量也需要根據自己實際情況配置
2、配置環境變量
vim /etc/profile
在配置文件中加入以下內容
export ZOOKEEPER_HOME=/usr/local/soft/zookeeper-3.4.6
export PATH=$PATH:$ZOOKEEPER_HOME/bin
使環境變量生效
source /etc/profile
輸入zk按tab鍵,如果有提示說明環境變量配置的沒問題
3、修改配置文件
cd /usr/local/soft/zookeeper-3.4.6/conf
cp zoo_sample.cfg zoo.cfg
修改zoo.cfg
data目錄下面會創建
注意:路徑要與自己的一致
dataDir=/usr/local/soft/zookeeper-3.4.6/data
增加以下內容
注意:主機名要改成自己的
server.0=master:2888:3888
server.1=node1:2888:3888
server.2=node2:2888:3888
4、同步到其它節點
該命令在/usr/local/soft下面執行
scp -r zookeeper-3.4.6 node1:`pwd`
scp -r zookeeper-3.4.6 node2:`pwd`
同步配置node1和node2的環境變量
下面寫的為絕對路徑,可以在任意地方執行
scp /etc/profile node1:/etc/
scp /etc/profile node2:/etc/
在所有節點執行使新配置的環境變量生效
source /etc/profile
4、創建/usr/local/soft/zookeeper-3.4.6/data目錄,所有節點都要創建
mkdir /usr/local/soft/zookeeper-3.4.6/data
在data目錄下創建myid文件
vim /usr/local/soft/zookeeper-3.4.6/data/myid
master,node1,node2分別加上0,1,2
這個數字用來唯一標識這個服務,一定要保證唯一性,zookeeper會根據這個id來取出server.x上的配置
5、同步時間
zookeeper節點之間需要實時監聽節點是否存活
如果沒有ntpdate命令,可以yum命令先安裝:
yum install ntp -y
從網絡服務器同步時間(需要虛擬機聯網):
ntpdate -u s2c.time.edu.cn
(經常掛起虛擬機,可能會導致時間停止,可使用crontab做成定時同步)
crontab -e
// 進入crontab命令編輯模式
加入以下內容(每十分鍾同步一次):
*/10 * * * * ntpdate -u s2c.time.edu.cn
6、啟動zk,
zkServer.sh start
三台都需要執行
zkServer.sh status
查看狀態
當有一個leader的時候啟動成功,我這里node2為leader,這個是隨機的每次啟動可能不一樣
下面簡單介紹下zookeeper的使用,與本次安裝無關,可以忽略
連接zk
zkCli.sh
zk 是一個目錄結構 ,每個節點可以存數據,同時可以有子節點
zk shell
創建目錄
create /test test create /test/a 1
獲取數據
get /test
ls /test
delete
只能刪除沒有子節點的節點
rmr /test
刪除節點
重置zk
1、殺掉所有zk進程
kiil -9 pid
2、刪除data目錄下的version文件, 所有節點都要刪除
rm -rf /usr/local/soft/zookeeper-3.4.6/data/version-2
2、啟動zk
zkServer.sh start
三、HBase安裝
Hbase的啟動前需要先啟動zookeeper和Hadoop,這里先啟動好再進行下面的安裝
准備工作
1、啟動hadoop
start-all.sh
驗證
http://master:50070
2、啟動zookeeper
需要在在三台中分別啟動
zkServer.sh start zkServer.sh status
搭建hbase
1、上傳解壓到自己的安裝目錄
tar -zxvf hbase-1.4.6-bin.tar.gz
2、修改hbase-env.sh文件
進入到配置文件目錄
cd /usr/local/soft/hbase-1.4.6/conf
vim hbase-env.sh
增加java配置(根據自己實際情況配置,文件中的這行注釋掉了,可以找到后修改也可以直接在最后面添加這一行)
export JAVA_HOME=/usr/local/soft/jdk1.8.0_171
關閉默認zk配置
因為HBase自己有個zk,這里我們把它自帶的關掉,用我們自己的
export HBASE_MANAGES_ZK=false
3、修改hbase-site.xml文件
vim hbase-site.xml
<!--hbase.root.dir 將數據寫入哪個目錄-->
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<!--單機模式不需要配置,分布式配置此項,value值為true,多節點分布-->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<!--單機模式不需要配置多個IP,分布式配置此項value值為多個主機ip,多節點分布-->
<name>hbase.zookeeper.quorum</name>
<value>node1,node2,master</value>
</property>
4、修改regionservers文件
默認是單節點的,我這里搭建的是分布式的, 在這里列出了你希望運行的全部 HRegionServer,一行寫一個host (就像Hadoop里面的 slaves 一樣
改為自己的子節點主機名
vim regionservers
node1
node2
如果是偽分布式版本,增加master即可
5、同步到所有節點(如果是偽分布式不需要同步)
命令在hbase安裝的文件目錄下運行,例如我的hbase裝在/usr/local/soft
命令就在/usr/local/soft下運行
scp -r hbase-1.4.6/ node1:`pwd` scp -r hbase-1.4.6/ node2:`pwd`
6、配置環境變量
vim /etc/profile
export HBASE_HOME=/usr/local/soft/hbase-1.4.6
export PATH=$PATH:$HBASE_HOME/bin
同步配置node1和node2的環境變量
下面寫的為絕對路徑,可以在任意地方執行
scp /etc/profile node1:/etc/
scp /etc/profile node2:/etc/
在所有節點執行使新配置的環境變量生效
source /etc/profile
7、啟動hbase集群 , 需要在master上執行
start-hbase.sh
通過jps查看下進程
master上有
其他兩個節點
8、驗證hbase
http://master:16010
hbase日志文件所在的目錄
/usr/local/soft/hbase-1.4.6/logs
關閉集群的命令
stop-hbase.sh
通過 hbase shell
進入到hbase的命令行
創建表 列簇 列式數據庫
create 'test','info'
插入數據
put 'test','001','info:name','zhangsan'
查詢數據
get 'test','001'
如果hbase 搭建失敗了 不知道問題出在哪里
重置hbase
1、關閉hbase集群
殺死進程
stop-hbase.sh
2、刪除hdfs數據
hadoop dfs -rmr /hbase
3、刪除元數據 zk
zkCli.sh
rmr /hbase
4、重啟hbase
start-hbase.sh