zookeeper安裝
用戶為hadoop,安裝目錄為/opt/app下面
上傳安裝文件到/opt下面
root用戶解壓
[root@master opt]$ tar -zxvf zookeeper-3.4.7.tar.gz -C /opt/app/
修改用戶及屬組
[root@master opt]# chown -R hadoop:hadoop zookeeper-3.4.7
創建數據文件夾并修改屬組(并在slave01和slave02上同樣創建)
mkdir /home/hadoop/app/zookeeper-3.4.7/tmp
chown -R hadoop:hadoop /home/hadoop/app/zookeeper-3.4.7/tmp
切換用戶并修改文件zoo.cfg
su – hadoop
mv zoo_sample.cfg zoo.cfg
#修改數據文件夾自定
dataDir=/home/hadoop/app/zookeeper-3.4.7/tmp
#添加服務器
server.1=master:2888:3888
server.2=slave01:2889:3889
server.3=slave02:2890:3890
最后幾行唯一需要注意的地方就是 server.X 這個數字就是對應 data/myid中的數字。你在3個server的myid文件中分別寫入了1,2,3,那么每個server中的zoo.cfg都配server.1,server.2,server.3就OK了。因為在同一臺機器上,后面連著的2個端口3個server都不要一樣,否則端口沖突,其中第一個端口用來集群成員的信息交換,第二個端口是在leader掛掉時專門用來進行選舉leader所用。
// server.X=A:B:C
其中X是一個數字,表示這是第幾號server.
A是該server所在的IP地址.
B配置該server和集群中的leader交換消息所使用的端口.
C配置選舉leader時所使用的端口
進入數據文件夾創建myid為1
cd /home/hadoop/app/zookeeper-3.4.7/tmp/
echo 1 > /home/hadoop/app/zookeeper-3.4.7/tmp/myid (對應上面的X 1:1號server)
將配置到的zookeeper拷貝到其他電腦(slave01,slave02)上
scp -r zookeeper-3.4.7 hadoop@slave01:/opt/app (-r表示遞歸)
scp -r zookeeper-3.4.7 hadoop@slave02:/opt/app
修改屬組
[root@master opt]# chown -R hadoop:hadoop zookeeper-3.4.7
注意:修改slave01、slave02對應/home/hadoop/app/zookeeper-3.4.7/tmp/myid內容
slave01:
echo 2 > /home/hadoop/app/zookeeper-3.4.7/tmp/myid
slave02:
echo 3 > /home/hadoop/app/zookeeper-3.4.7/tmp/myid
配置環境變量
sudo vi /etc/profile
export ZOOKEEPER_HOME=/opt/app/zookeeper-3.4.7
export PATH=$PATH:$ZOOKEEPER_HOME/bin
(同樣在master、slave02節點上也進行同樣的操作)
啟動,在三臺機器上執行
bin/zkServer.sh start bin/zkServer.sh stop(關閉)
判斷是否啟動成功
Jps
或者查看進程-#有信息則啟動成功
ps -aux | grep 'zookeeper'
最好查看日志 #查看是否報錯
tail -f -n 500 zookeeper.out
查看zookeeper角色
在master節點上:
zkServer.sh status
在slave01節點上:
在slave02節點上:
Leader角色至始至終只有一個,通過選舉算法產生。節點中只要有一個leader死掉,馬上就會通過選舉算法產生一個新的leader.
進入zookeeper-3.4.7/bin 目錄中,./zkServer.sh start啟動一個server,這時會報大量錯誤?其實沒什么關系,因為現在集群只起了1臺server,zookeeper服務器端起來會根據zoo.cfg的服務器列表發起選舉leader的請求,因為連不上其他機器而報錯,那么當我們起第二個zookeeper實例后,leader將會被選出,從而一致性服務開始可以使用,這是因為3臺機器只要有2臺可用就可以選出leader并且對外提供服務(2n+1臺機器,可以容n臺機器掛掉)。