Zookeeper集羣環境依賴jdk1.6以上版本,Zookeeper集羣節點至少三個,因爲內部機制有宕機的節點剩餘節點必須過半才能正常運行。Zookeeper每個節點的都是平等的,通過內部選舉算法選舉一個leader其它均爲follower。
集羣環境:
centos6.5 master 192.168.145.129
centos6.5 slave1 192.168.145.130
centos6.5 slave2 192.168.145.136
配置步驟:
1.配置三臺主機的hostname:(以192.168.145.129爲例 其它的修改對應的hostname即可,重啓系統後生效)
vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=master #修改成對應主機的hostname
NETWORKING_IPV6=yes
IPV6_AUTOCONF=no
2.配置三臺主機的hosts文件內容如下:(集羣節點hosts是一致的)
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
192.168.145.129 master
192.168.145.130 slave1
192.168.145.136 slave2
3.設置環境變量
export HADOOP_HOME=/usr/local/hadoop-2.7.2
export JAVA_HOME=/home/work/jdk1.7.0
export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.6
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
4.配置Zookeeper配置文件conf/zoo.cfg
dataDir=/usr/local/zookeeper-3.4.6/data
# set logs
dataLogDir=/usr/local/zookeeper-3.4.6/logs
# set server
server.1=master:4887:5887
server.2=slave1:4887:5887
server.3=slave2:4887:5887
5.在$ZOOKEEPER_HOME/data目錄下創建myid文件
[root@master data]# pwd
/usr/local/zookeeper-3.4.6/data
[root@master data]# ll
total 12
-rw-r--r--. 1 root root 2 Apr 17 00:57 myid
drwxr-xr-x. 2 root root 4096 Apr 18 11:39 version-2
-rw-r--r--. 1 root root 4 Apr 17 19:46 zookeeper_server.pid
[root@master data]#
6.將文件複製到其它節點
scp /usr/local/zookeeper-3.4.6 root@slave1:/usr/local
scp /usr/local/zookeeper-3.4.6 root@slave2:/usr/local
7.修改$ZOOKEEPER_HOME/data目錄下的myid文件
master節點:myid文件內容是1
slave1節點:myid文件內容是2
slave2節點:myid文件內容是3
8.啓動Zookeeper
bin/zkService.sh start 啓動zookeeper
[root@master zookeeper-3.4.6]# bin/zkServer.sh start
JMX enabled by default
Using config: /usr/local/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
相同方法分別啓動slave1,slave2節點上的zookeeper
bin/zkService.sh status 查看狀態
[root@master zookeeper-3.4.6]# bin/zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower