-
Download zookeeper distribution
wget http://apachemirror.wuchna.com/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
-
Extract distribution
tar -xzvf zookeeper-3.4.14.tar.gz
-
Create zookeeper cluster directory
sudo mkdir /opt/zookeeper-cluster
-
Copy extracted distribution to zookeeper cluster directory
sudo mv zookeeper-3.4.14 /opt/zookeeper-cluster/zookeeper-1
-
working change directory /opt/zookeeper-cluster
cd /opt/zookeeper-cluster
-
Make additional two copies of distribution
sudo cp -R zookeeper-1 zookeeper-2 sudo cp -R zookeeper-1 zookeeper-3
-
Change ownership
sudo chown -R <user>:<group> zookeeper-1 sudo chown -R <user>:<group> zookeeper-2 sudo chown -R <user>:<group> zookeeper-3
-
Rename zoo_sample.cfg to zoo.cfg
mv zookeeper-1/conf/zoo_sample.cfg zookeeper-1/conf/zoo.cfg mv zookeeper-2/conf/zoo_sample.cfg zookeeper-2/conf/zoo.cfg mv zookeeper-3/conf/zoo_sample.cfg zookeeper-3/conf/zoo.cfg
-
Update
dataDir
sed -i 's/dataDir=.*/dataDir=\/opt\/zookeeper-cluster\/zookeeper-1\/data/g' zookeeper-1/conf/zoo.cfg sed -i 's/dataDir=.*/dataDir=\/opt\/zookeeper-cluster\/zookeeper-2\/data/g' zookeeper-2/conf/zoo.cfg sed -i 's/dataDir=.*/dataDir=\/opt\/zookeeper-cluster\/zookeeper-3\/data/g' zookeeper-3/conf/zoo.cfg
-
Update
clientPort
sed -i 's/clientPort=.*/clientPort=2181/g' zookeeper-1/conf/zoo.cfg sed -i 's/clientPort=.*/clientPort=2182/g' zookeeper-2/conf/zoo.cfg sed -i 's/clientPort=.*/clientPort=2183/g' zookeeper-3/conf/zoo.cfg
-
Add peer server details
cat << EOF >> zookeeper-1/conf/zoo.cfg server.1=192.168.56.150:2887:3887 server.2=192.168.56.150:2888:3888 server.3=192.168.56.150:2889:3889 EOF cat << EOF >> zookeeper-2/conf/zoo.cfg server.1=192.168.56.150:2887:3887 server.2=192.168.56.150:2888:3888 server.3=192.168.56.150:2889:3889 EOF cat << EOF >> zookeeper-3/conf/zoo.cfg server.1=192.168.56.150:2887:3887 server.2=192.168.56.150:2888:3888 server.3=192.168.56.150:2889:3889 EOF
Note
|
id suffix should match the myid file content |
-
Create data dir
mkdir zookeeper-1/data mkdir zookeeper-2/data mkdir zookeeper-3/data
-
Create myid file with server id
echo "1" > zookeeper-1/data/myid echo "2" > zookeeper-2/data/myid echo "3" > zookeeper-3/data/myid
-
Start the servers
cd zookeeper-1 bin/zkServer.sh start cd ../zookeeper-2 bin/zkServer.sh start cd ../zookeeper-3 bin/zkServer.sh start
-
Verify nodes are up and leader and follower are chosen
echo stat | nc localhost 2181 | grep Mode