1. 程式人生 > >ZooKeeper-3.4.10的安裝和配置

ZooKeeper-3.4.10的安裝和配置

準備工作

  • 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叢集,叢集自然需要彼此之間的通訊,所以需要關閉防火牆。

Over