Linux-安装Zookeeper

x33g5p2x  于2021-09-27 转载在 Linux  
字(4.6k)|赞(0)|评价(0)|浏览(417)

安装Zookeeper

官网下载地址:http://archive.apache.org/dist/zookeeper/

本课程使用的Zookeeper版本为3.4.6

zookeeper-3.4.6.tar

链接:https://pan.baidu.com/s/1aFhIJz6nRXtFXv3dfu6JIQ
提取码:1234

下载完成后可以获得名称为zookeeper-3.4.6.tar.gz的压缩文件。

安装步骤:(建议安装到自己 服务器或虚拟机上 这样日后学习的时候比较方便 )

第一步:安装 jdk(略 ) 这个你自己在网上找资料进行安装 使用 java -version 查询当前机器 JDK版本号

第二步:把 zookeeper 的压缩包(zookeeper-3.4.6.tar.gz)上传到 linux 系统的 /root下面

第三步:解压缩压缩包

tar -zxvf zookeeper-3.4.6.tar.gz

第四步:进入zookeeper-3.4.6目录,创建data目录

mkdir -p /root/zookeeper-3.4.6/data

第五步:进入conf目录 ,把zoo_sample.cfg 改名为zoo.cfg

cd   /root/zookeeper-3.4.6/conf 

mv zoo_sample.cfg zoo.cfg

第六步:打开zoo.cfg文件, 修改data属性:dataDir=/root/zookeeper-3.4.6/data (对应你上面创建的data)

vi  zoo.cfg

第7步管理Zookeeper服务

进入Zookeeper的bin目录,

cd   /root/zookeeper-3.4.6/bin
#启动服务命令 (1)
./zkServer.sh start

#停止服务命令
./zkServer.sh stop

#重启服务命令
./zkServer.sh restart 

#查看服务状态 (2)
./zkServer.sh status

以上就是 Zookeeper注册中心服务 的搭建

使用Docker安装Zookeeper

1,下载Zookeeper镜像, docker没有 3.4.6版本的我们只能下载3.4.9 不要下载最新版本会出问题的

docker pull zookeeper:3.4.9

2,启动容器并添加映射

docker run -d --name zookeeper --restart=always  -p 2181:2181  zookeeper:3.4.9

3,查看容器是否启动

docker ps

docker logs  zookeeper  (查看日志)

4, 进入容器的配置文件位置

docker exec -it zookeeper /bin/bash

cd  /conf/

vi  zoo.cfg       (修改  dataDir=/data  可能默认就是/data)

admin.serverPort=8089

mkdir -p /data    (创建dataDir的data 目录)

5, 管理Zookeeper服务

进入Zookeeper的bin目录, (在创建容器的时候就已经启动了 所以不要启动了)

cd /zookeeper-3.4.9/bin
#启动服务命令 
./zkServer.sh start

#停止服务命令
./zkServer.sh stop

#查看服务状态 (1)
./zkServer.sh status

#重启
./zkServer.sh  restart

# 查看zookeeper 日志
./zkServer.sh start-foreground

以上就是 Zookeeper注册中心服务 的搭建

查看节点注册情况

cd /zookeeper-3.4.9/bin
./zkCli.sh         
 
然后  ls /dubbo   就能看的我们提供的服务的包路径

比如: [com.example.service.UserService]

使用Docker安装Zookeeper集群

超级简单的 只需要在其他服务器上在安装二个 Zookeeper 就行了 因为最低三台才能集群否则

No server failure will be tolerated. You need at least 3 servers

导致你一直启动不成功

我们在虚拟机上 使用docker 来演示

  • –network host: 使用主机上的网络配置,如果不用这种模式,而用默认的bridge模式,会导致容器跨主机间通信失败

没条件的在多个虚拟机上安装也行

序号服务与端口
1192.168.66.67
2192.168.66.68
3192.168.66.69

创建挂载

mkdir -p /root/zookeeper/conf  /root/zookeeper/data

在conf创建配置文件

vi   /root/zookeeper/conf/zoo.cfg
clientPort=2181 
dataDir=/data 
dataLogDir=/data/log 
tickTime=3000 
initLimit=5 
syncLimit=2 
autopurge.snapRetainCount=3
autopurge.purgeInterval=0 
maxClientCnxns=60
server.111=192.168.66.67:2888:3888
server.222=192.168.66.68:2888:3888
server.333=192.168.66.69:2888:3888

autopurge.snapRetainCount 对应你集群的数量

然后在每个节点的 dataDir指定的目录下 创建myid文件

cd /root/zookeeper/data

touch myid && echo 111 > myid

注意 这个数字111 必须对应zoo.cfg的配置文件的 server.111 也就是 192.168.66.67这台主机

要是数字222的话,就是要在192.168.66.68 这台主机上编辑myid文件 …

touch myid && echo 222 > myid

192.168.66.69

touch myid && echo 333 > myid

拉取镜像

docker pull zookeeper:3.4.9

创建容器

docker run  --network host \
-v /root/zookeeper/data:/data \
-v /root/zookeeper/conf:/conf \
--restart=always \
--privileged=true \
--name zookeeper -d zookeeper:3.4.9

查看 docker logs zookeeper

这里注意必须全部的节点都搭建完成后 而且都能通过命令进入到容器里

docker exec -it zookeeper /bin/bas

否则只要有一个节点没有成功那么 检测运行状态状态 就会出现

JMX enabled by default
Using config: /opt/zookeeper/zookeeper-3.4.5/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

如果以上都没问题 那么 稍等一会 1分钟 (让服务之间进行通信)

然后 随便进入一个容器里 检查zookeeper运行情况 进入容器

docker exec -it zookeeper /bin/bash

cd /zookeeper-3.4.9/bin

./zkServer.sh status

如果是主节点 那么会显示 leader 子节点会显示 follower 这个由Zookeeper自行选择

如果显示 standalone 那么就代表你集群没搭建成功

开放 每个节点的 2181 2888 3888 端口 或者直接将 防火墙给关了 (重要)

以上配置完了 关闭Zookeeper 然后从新启动 容器的话重启容器

端口说明:

1、2181:对cline端提供服务

2、3888:用来选举leader的端口

3、2888:集群内机器通讯使用(Leader监听此端口)

如果一直出现

Error contacting service. It is probably not running.

检测 myid 有没有顺序配置错误 检测挂载的 zoo.cfg文件内容有没有复制的时候漏掉什么东西

搭建zookeeper集群后DubboAdmin客户端 到底连接谁?

这个也很好理解 集群分为主节点和 子节点 我们DubboAdmin客户端 连接zookeeper的主节点( leader) 就行

下 创建myid文件//

cd /root/zookeeper/data

touch myid && echo 111 > myid

注意 这个数字111 必须对应zoo.cfg的配置文件的 server.111 也就是 192.168.66.67这台主机

要是数字222的话,就是要在192.168.66.68 这台主机上编辑myid文件 …

touch myid && echo 222 > myid

192.168.66.69

touch myid && echo 333 > myid

拉取镜像

docker pull zookeeper:3.4.9

创建容器

docker run  --network host \
-v /root/zookeeper/data:/data \
-v /root/zookeeper/conf:/conf \
--restart=always \
--privileged=true \
--name zookeeper -d zookeeper:3.4.9

查看 docker logs zookeeper

这里注意必须全部的节点都搭建完成后 而且都能通过命令进入到容器里

docker exec -it zookeeper /bin/bas

否则只要有一个节点没有成功那么 检测运行状态状态 就会出现

JMX enabled by default
Using config: /opt/zookeeper/zookeeper-3.4.5/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

如果以上都没问题 那么 稍等一会 1分钟 (让服务之间进行通信)

然后 随便进入一个容器里 检查zookeeper运行情况 进入容器

docker exec -it zookeeper /bin/bash

cd /zookeeper-3.4.9/bin

./zkServer.sh status

如果是主节点 那么会显示 leader 子节点会显示 follower 这个由Zookeeper自行选择

如果显示 standalone 那么就代表你集群没搭建成功

开放 每个节点的 2181 2888 3888 端口 或者直接将 防火墙给关了 (重要)

以上配置完了 关闭Zookeeper 然后从新启动 容器的话重启容器

端口说明:

1、2181:对cline端提供服务

2、3888:用来选举leader的端口

3、2888:集群内机器通讯使用(Leader监听此端口)

如果一直出现

Error contacting service. It is probably not running.

检测 myid 有没有顺序配置错误 检测挂载的 zoo.cfg文件内容有没有复制的时候漏掉什么东西

搭建zookeeper集群后DubboAdmin客户端 到底连接谁?

这个也很好理解 集群分为主节点和 子节点 我们DubboAdmin客户端 连接zookeeper的主节点( leader) 就行

相关文章