方式一:zookeeper集群搭建
前提:zookeeper適合裝在奇數(shù)臺(tái)機(jī)器上?。?!
1.zookeeper版本:zookeeper-3.4.11.tar
下載地址:Index of /dist/zookeeper/zookeeper-3.4.11 (apache.org)
2.解壓:tar -zxvf zookeeper-3.4.11.tar
3.修改環(huán)境變量:
ZOOKEEPER_HOME=/usr/local/src/zookeeper-3.4.11
export ZOOKEEPER_HOME
PATH=$ZOOKEEPER_HOME/bin:$PATH
export PATH
source 生效環(huán)境變量
4.修改配置文件:
1.進(jìn)入conf目錄下 cd zookeeper/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
添加內(nèi)容:
dataDir=/usr/local/src/zookeeper-3.4.11/tmp
dataLogDir=/usr/local/src/zookeeper-3.4.11/log
server.1=master:2888:3888 (主機(jī)名, 心跳端口、數(shù)據(jù)端口)
server.2=slave1:2888:3888
server.3=slave2:2888:3888
2.進(jìn)入zookeeper_home目錄下創(chuàng)建目錄
cd /usr/local/src/zookeeper-3.4.11/
mkdir -m 755 tmp
mkdir -m 755 log
3.在tmp文件夾下新建myid文件,myid的文件內(nèi)容為:
添加內(nèi)容:1
5.將集群下發(fā)到其他機(jī)器上
scp -r/usr/local/src/zookeeper-3.4.11/ hadoop@slave1:/home/hadoop/
scp -r /usr/local/src/zookeeper-3.4.11/ hadoop@slave2:/home/hadoop/
6.修改其他機(jī)器的配置文件
到slave1上:修改myid為:2
到slave2上:修改myid為:3
7.啟動(dòng)(每臺(tái)機(jī)器)
zkServer.sh start
8.查看集群狀態(tài)
jps(查看進(jìn)程)
zkServer.sh status(查看集群狀態(tài),主從信息)
方式二:ZooKeeper偽分布環(huán)境搭建
Zookeeper有兩種常見的搭建方式:1.standalone方式;2.集群方式。這兩者的區(qū)別是:
1.standalone方式只需要一個(gè)Zookeeper節(jié)點(diǎn);集群方式至少需要3個(gè)節(jié)點(diǎn)(一個(gè)leader,2個(gè)follower);
2.standalone方式一旦Zookeeper節(jié)點(diǎn)宕機(jī),Spark HA就不能使用了;集群方式如果leader宕機(jī),Zookeeper內(nèi)部會(huì)從follower中選舉出一個(gè)新的leader,可以對HA提供更有效的保障。
這里來介紹Zookeeper的standalone方式的搭建過程:
2.1 上傳Zookeeper安裝包
/usr/local/src/zookeeper-3.4.11
2.2 解壓Zookeeper安裝包
tar -xvf zookeeper-3.4.11.tar
2.3 配置Zookeeper環(huán)境變量:
[root@master src]# vim /root/.bash_profile
ZOOKEEPER_HOME=/usr/local/src/zookeeper-3.4.11
export ZOOKEEPER_HOME
PATH=$ZOOKEEPER_HOME/bin:$PATH
export PATH
及時(shí)生效:
[root@master tools]# source /root/.bash_profile
2.4 配置Zookeeper參數(shù)
2.4.1 創(chuàng)建Zookeeper保存數(shù)據(jù)的目錄:
mkdir /usr/local/src/zookeeper-3.4.11/tmp
2.4.2 編輯Zookeeper的配置文件zoo.cfg:
[root@master conf]# cp zoo_sample.cfg zoo.cfg
[root@master conf]# vim zoo.cfg
#dataDir=/tmp/zookeeper
dataDir=/usr/local/src/zookeeper-3.4.11/tmp
server.1=master:2888:3888
參數(shù)說明:
2888端口:是zookeeper服務(wù)之間進(jìn)行通信的端口
3888端口:是zookeeper與其他程序之間進(jìn)行通信的端口
2.4.3 啟動(dòng)zookeeper:
[root@master conf]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/src/zookeeper-3.4.11/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
2.4.4 檢查進(jìn)程:
[root@master conf]# jps
2709 SecondaryNameNode
2522 NameNode
**3403 QuorumPeerMain**
3420 Jps
2863 ResourceManager