背景
本文主要介紹了在centos7系統(tǒng)上搭建zookeeper集群的步驟顶考。
環(huán)境
- 三臺(tái)centos7的機(jī)器:
hostname | ip |
---|---|
node1 | 192.168.163.128 |
node2 | 192.168.163.129 |
node3 | 192.168.163.130 |
搭建zookeeper集群時(shí)一定要使用奇數(shù)臺(tái)服務(wù)器丧裁。
java版本:jdk8
zookeeper版本:3.4.9
搭建步驟
安裝Java環(huán)境
請(qǐng)參考:http://lintut.com/how-to-install-java-8-on-rhel-centos-7-x-and-fedora-linux/
配置無(wú)密鑰的SSH訪(fǎng)問(wèn)
-
每臺(tái)zookeeper節(jié)點(diǎn)配置以下hosts:
192.168.163.128 node1 192.168.163.129 node2 192.168.163.130 node3
-
每臺(tái)節(jié)點(diǎn)生成自己的密鑰蚀狰。一路回車(chē)幢炸,全部按照默認(rèn)的方式生成吱雏。
# ssh-keygen -t rsa
結(jié)束后,我們可以在~/.ssh目錄下多了id_rsa和id_rsa.pub這兩個(gè)文件筛峭。
-
接下來(lái)铐刘,我們需要配置ssh免密鑰登錄了。為了方便起見(jiàn)蜒滩,我們借用ssh-copy-id命令滨达。如果提示沒(méi)有ssh-copy-id命令,可以執(zhí)行
yum install openssh
來(lái)安裝俯艰。下面我們以node1節(jié)點(diǎn)為例:# ssh-copy-id root@node2 # ssh-copy-id root@node3
所有節(jié)點(diǎn)都需要執(zhí)行一遍ssh-copy-id命令捡遍。
-
嘗試在node1節(jié)點(diǎn)通過(guò)ssh免密鑰登錄node2節(jié)點(diǎn):
# ssh root@node1
如果能夠登錄成功說(shuō)明已經(jīng)配置成功。
下載zookeeper
隨便挑選一臺(tái)節(jié)點(diǎn)服務(wù)器竹握,比如我們挑選node1画株。在node1上從官網(wǎng)下載zookeeper:
# wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/zookeeper-3.4.9.tar.gz
解壓下載下來(lái)的壓縮包:
# tar zxvf zookeeper-3.4.9.tar.gz
建立zookeeper關(guān)鍵目錄
建立dataDir(數(shù)據(jù)目錄)所在目錄:
# mkdir /var/lib/zookeeper
建立dataLogDir(日志目錄)所在目錄:
# mkdir /var/log/zookeeper
配置zookeeper
-
建立配置文件:
# cd zookeeper-3.4.9/conf # cp zoo_sample.cfg zoo.cfg
-
編輯配置文件:
# vim zoo.cfg
-
在配置文件中添加以下的配置信息:
tickTime=2000 initLimit=10 syncLimit=5 clientPort=2181 dataDir=/var/lib/zookeeper dataLogDir=/var/log/zookeeper server.1=node1:2888:3888 server.2=node2:2888:3888 server.3=node3:2888:3888
然后將zookeeper文件夾拷貝至node2以及node3。
建立myid文件
在每臺(tái)節(jié)點(diǎn)服務(wù)器上創(chuàng)建myid文件啦辐,myid文件的所在位置就是dataDir目錄谓传,myid文件里面的內(nèi)容就是剛才配置文件中server后面跟的數(shù)字。我們以node1為例:
# cd /var/lib/zookeeper
# echo 1 > myid
啟動(dòng)zookeeper
在所有節(jié)點(diǎn)的zookeeper文件夾下執(zhí)行以下命令:
# zookeeper-3.4.9/bin/zkServer.sh start
校驗(yàn)zookeeper啟動(dòng)狀態(tài)
啟動(dòng)成功之后芹关,zookeeper會(huì)從節(jié)點(diǎn)中選出一個(gè)leader续挟,剩余的就是follower,我們可以挑選一臺(tái)節(jié)點(diǎn)服務(wù)器執(zhí)行下述命令查看當(dāng)前節(jié)點(diǎn)是什么狀態(tài):
# zookeeper-3.4.9/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /root/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: follower
我們可以看到當(dāng)前的節(jié)點(diǎn)服務(wù)器是follower狀態(tài)侥衬。