ubuntu1804搭建zookeeper集群(docker)

环境

三台阿里云服务器,在一个VPC网络里,就是三台服务器在一个局域网里。

在这三台服务器上,我均以host网络模式启动了一个docker容器,容器内部是ubuntu1804操作系统。host网络模式就是容器内部直接使用宿主机的网络,所以和直接在宿主机上操作其实没有区别,因此本文的搭建方法在非docker环境完全适用

之所以选择docker,是希望可以一劳永逸,搭建这一次,搭好了把镜像存到镜像仓库,以后再部署zk集群就可以直接用了。

三台机器的内网ip如下:

服务器1:172.17.119.207
服务器2:172.17.119.206
服务器3:172.17.119.204

zookeeper的安装和配置

1.从官网下载包,这个下载过程会有些慢,耐心等待即可

cd /home/pdds
wget http://archive.apache.org/dist/zookeeper/zookeeper-3.5.4-beta/zookeeper-3.5.4-beta.tar.gz

其中,/home/pdds是我的主文件夹,下载到哪以及安装在哪无所谓,根据你的情况而定,我这次安装就都直接装在主文件夹里了。 

2.解压

tar -xf zookeeper-3.5.4-beta/zookeeper-3.5.4-beta.tar.gz

3.创建data和logs目录,分别用于存放数据和日志,建在哪里也根据你的情况而定,我就直接放在zookeeper文件夹里

cd /home/pdds/zookeeper-3.5.4-beta
mkdir data
mkdir logs

4.编写配置文件,具体含义不解释了(我也说不太清),都可以根据你的项目需求而改

vi /home/pdds/zookeeper-3.5.4-beta/conf/zoo.cfg

 加入以下内容:

tickTime=2000
initLimit=5
syncLimit=2
dataDir=/home/pdds/zookeeper-3.5.4-beta/data
dataLogDir=/home/pdds/zookeeper-3.5.4-beta/logs
clientPort=2181
server.1=172.17.119.207:2888:3888
server.2=172.17.119.206:2889:3889
server.3=172.17.119.204:2890:3890

5.前4步,三台服务器的操作完全一致,包括配置文件也写成一样的,最后,需要告诉每个服务器自己的id是多少

在三台服务器的data路径下创建myid文件,并将服务器序号写入

vi /home/pdds/zookeeper-3.5.4-beta/data/myid

在3台服务器上分别写入1,2,3,注意要和配置文件里的server序号相对应。

安装jdk

zookeeper服务运行需要java环境,需要安装jdk。

安装方法参考ubuntu16.04搭建jdk1.8运行环境

完全按照里面的步骤执行即可,亲测可用。

启动集群

在三台服务器上,均执行以下命令,启动zookeeper服务器。

cd /home/pdds/zookeeper-3.5.4-beta/bin
./zkServer.sh start

看到以下内容说明启动成功。

 验证

验证分为两步,首先,验证3个zk节点是否完成了选举。

在3个节点均执行以下命令:

cd /home/pdds/zookeeper-3.5.4-beta/bin
./zkServer.sh status

此时应有一个leader和两个follower,所以如果在两台服务器看到mode是follower,一台服务器上看到mode是leader,说明集群正常运行了。

 然后,就可以试着在一个节点写数据,然后看另外2个节点是不是同步上了。

首先,在三台机器上都打开zk客户端。

cd /home/pdds/zookeeper-3.5.4-beta/bin
./zkCli.sh

执行完应该是这样的:

然后,查看当前的根路径:

ls /

 会发现目前只有一个zookeeper节点:

接下来,在任意一个节点上创建一个test节点:

 然后在其他两个节点上查看,如果能看到test,说明同步上了。

发布了39 篇原创文章 · 获赞 25 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/u013536232/article/details/104277652