ZooKeeper-3.4.10的安裝和配置
阿新 • • 發佈:2019-02-11
準備工作
- 1.搭建好的hadoop分散式系統
- 2.zookeeper-3.4.10.tar.gz
安裝
解壓zookeeper-3.4.10.tar.gz包完成安裝
#tar -zxvf zookeeper-3.4.10.tar.gz -C /usr/local/hadoop
配置
- 1.新增環境變數
#vim /etc/profile
新增如下記錄:
ZOOKEEPER_HOME=/usr/local/hadoop/zookeeper-3.4.10
export PATH=$ZOOKEEPER_HOME/bin:$PATH
使配置檔案生效
#source /etc/profile
- 2.建立用於儲存zookeeper臨時檔案的zookeeperData目錄並在目錄下建立檔案myid
#mkdir -p /home/hadoop/zookeeper-3.4.10/zookeeperData
#cd /home/hadoop/zookeeper-3.4.10/zookeeperData
#vim myid
寫入內容:1
- 3.修改zookeeper的配置檔案
#cd /usr/local/hadoop/zookeeper-3.4.10/conf
#mv zoo_sample.cfg zoo.cfg
#vim zoo.cfg
//指定zookeeper臨時檔案的儲存路徑
dataDir=/home/hadoop/zookeeper-3.4 .10/zookeeperData
//新增如下記錄
server.1=Master:2888:3888
server.2=Slave1:2888:3888
server.3=Slave2:2888:3888
注:server.X=A:B:C 其中X是一個數字(myid中的數字),表示這是第幾號server。A是該server所在的IP地址,B配置該server和叢集中的leader交換訊息所使用的埠,C配置選舉leader時所使用的埠。
複製zookeeper-3.4.10資料夾
叢集中的每一臺機器都需要安裝配置zookeeper
方法一:以上同樣的步驟在叢集中的每一臺機器上做一次。
方法二:使用scp -r命令複製
#scp -r /home/hadoop/zookeeper-3.4.10 Slave1:/home/hadoop/
#scp -r /usr/local/hadoop/zookeeper-3.4.10 Slave1:/usr/local/hadoop/
注:命令中的Slave1是主機名。/etc/profile就別瞎複製了,畢竟是配置檔案,勤快點改改吧!複製之後記得修改myid的值,2,3…
啟動和停止
由於在/etc/profile中設定了zookeeper的環境變數,啟動和停止就變得非常的方便了。
啟動
#zkServer.sh start
停止
#zkServer.sh stop
驗證
#jps
在hadoop叢集執行著的情況下,namenode有如下程序:
[root@Master ~]# jps
5858 NameNode
6195 ResourceManager
8601 Jps
6986 QuorumPeerMain //zookeeper程序
6045 SecondaryNameNode
[root@Master ~]#
datanode有如下程序:
[root@Slave1 ~]# jps
3703 NodeManager
5784 Jps
3598 DataNode
4239 QuorumPeerMain //zookeeper程序
[root@Slave1 ~]#
注:就算存在QuorumPeerMain程序也不代表zookeeper啟動成功,需要再次使用zkServer.sh status檢視zookeeper的執行狀態。
#zkServer.sh status
JMX enabled by default
Using config: /usr/local/zk/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
如果出現的是如上資訊說明zookeeper並沒有啟動成功,而出現如下資訊才能說明zookeeper啟動成功
#zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/hadoop/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower(或者leader)
原因一:zookeeper中myid檔案有錯誤,myid必須和zoo.cfg中的伺服器編號一致。
原因二:防火牆。zookeeper也是叢集,稱為zookeeper叢集,叢集自然需要彼此之間的通訊,所以需要關閉防火牆。