zookeeper的安装与集群

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,182元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
云原生网关 MSE Higress,422元/月
简介: zookeeper的安装与集群

zookeeper简介


Zookeeper是一个分布式协调服务;就是为用户的分布式应用程序提供协调服务

A、zookeeper是为别的分布式程序服务的

B、Zookeeper本身就是一个分布式程序(只要有半数以上节点存活,zk就能正常服务)

C、Zookeeper所提供的服务涵盖:主从协调、服务器节点动态上下线、统一配置管理、分布式共享锁、统一名称服务……

D、虽然说可以提供各种服务,但是zookeeper在底层其实只提供了两个功能:

管理(存储,读取)用户程序提交的数据;

并为用户程序提供数据节点监听服务;

Zookeeper集群的角色: Leader 和 follower (Observer)

只要集群中有半数以上节点存活,集群就能提供服务


1、zookeeper的安装


这里我准备了一个纯净的linux来进行安装,另外zookeeper是java开发的所以先装好jdk(1.7及以上)。

1、将zookeeper-3.4.6.tar.gz上传到/root目录下。

2、创建apps文件夹,将zookeeper-3.4.6.tar.gz解压到apps文件夹下。

[root@localhost ~]# ll
总用量 17312
-rw-------. 1 root root     1131 9月  12 03:59 anaconda-ks.cfg
-rw-r--r--. 1 root root    12526 9月  12 03:59 install.log
-rw-r--r--. 1 root root     3482 9月  12 03:59 install.log.syslog
-rw-r--r--. 1 root root 17699306 6月  20 15:55 zookeeper-3.4.6.tar.gz
[root@localhost ~]# mkdir apps
[root@localhost ~]# tar -zxvf zookeeper-3.4.6.tar.gz -C apps/

3、进入apps/zookeeper-3.4.6.tar.gz/conf文件夹,复制zoo_example.cfg改名为zoo.cfg

[root@localhost apps]# ll
总用量 4
drwxr-xr-x. 10 1000 1000 4096 2月  20 2014 zookeeper-3.4.6
[root@localhost apps]# cd zookeeper-3.4.6/conf
[root@localhost conf]# ll
总用量 12
-rw-rw-r--. 1 1000 1000  535 2月  20 2014 configuration.xsl
-rw-rw-r--. 1 1000 1000 2161 2月  20 2014 log4j.properties
-rw-rw-r--. 1 1000 1000  922 2月  20 2014 zoo_sample.cfg
[root@localhost conf]# cp zoo_sample.cfg zoo.cfg
[root@localhost conf]# ll
总用量 16
-rw-rw-r--. 1 1000 1000  535 2月  20 2014 configuration.xsl
-rw-rw-r--. 1 1000 1000 2161 2月  20 2014 log4j.properties
-rw-r--r--. 1 root root  922 9月  12 18:05 zoo.cfg
-rw-rw-r--. 1 1000 1000  922 2月  20 2014 zoo_sample.cfg

4、修改配置文件zoo.cfg,这里只修改数据存储文件夹位置


image.png


5、创建文件夹 /root/zkdata

[root@localhost conf]# cd /root
[root@localhost ~]# mkdir zkdata
[root@localhost ~]# ll
总用量 17320
-rw-------. 1 root root     1131 9月  12 03:59 anaconda-ks.cfg
drwxr-xr-x. 3 root root     4096 9月  12 18:04 apps
-rw-r--r--. 1 root root    12526 9月  12 03:59 install.log
-rw-r--r--. 1 root root     3482 9月  12 03:59 install.log.syslog
drwxr-xr-x. 2 root root     4096 9月  12 18:12 zkdata
-rw-r--r--. 1 root root 17699306 6月  20 15:55 zookeeper-3.4.6.tar.gz

6、进入/root/zookeeper-3.4.6/bin,启动zookeeper并且查看是否启动成功。

[root@localhost bin]# ll
总用量 36
-rwxr-xr-x. 1 1000 1000  238 2月  20 2014 README.txt
-rwxr-xr-x. 1 1000 1000 1937 2月  20 2014 zkCleanup.sh
-rwxr-xr-x. 1 1000 1000 1049 2月  20 2014 zkCli.cmd
-rwxr-xr-x. 1 1000 1000 1534 2月  20 2014 zkCli.sh
-rwxr-xr-x. 1 1000 1000 1333 2月  20 2014 zkEnv.cmd
-rwxr-xr-x. 1 1000 1000 2696 2月  20 2014 zkEnv.sh
-rwxr-xr-x. 1 1000 1000 1084 2月  20 2014 zkServer.cmd
-rwxr-xr-x. 1 1000 1000 5742 2月  20 2014 zkServer.sh
[root@localhost bin]# ./zkServer.sh start
JMX enabled by default
Using config: /root/apps/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@localhost bin]# ./zkServer.sh status
JMX enabled by default
Using config: /root/apps/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: standalone

到这就说明启动成功了。但是实际有可能会出现一些问题。比如查看状态就经常看到未启动成功

[root@itheima32 bin]# ./zkServer.sh status
JMX enabled by default
Using config: /usr/zookeeper-3.4.6/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

先关闭防火墙试试

[root@itheima32 bin]# service iptables stop
iptables:清除防火墙规则:                                 [确定]
iptables:将链设置为政策 ACCEPT:filter                    [确定]
iptables:正在卸载模块:                                   [确定]
或者
chkconfig iptables off(永久关闭(开机不启动防火墙))

如果不行,那么查看日志吧。

[root@localhost bin]# cat zookeeper.out

如果出现了java.net.BindException: Address already in use

地址被占用,那么先查看是否被占用,占用了则杀死进程再启动,建议去/root/zkdata下删除zookeeper_server.pid。


image.png


2、zookeeper的集群

zookeeper的安装很简单,zookeeper的集群也不难,主要还是改配置,准备三个纯净版的linux,还是得装好jdk配置好环境

可以使用前面用的linux,把apps文件夹和zkdata文件夹都删了即可。然后克隆两个,克隆了一定需要修改ip地址。但是可能会出现下面的问题。

(1)、查看ip的话看不到eth0只显示127.0.0.1,出现这种情况使用以下命令

ifup eth0 ifconfig up eth0

(2)、如果使用上面的命令出现了device eth0 does not seem to be present, delaying initialization问题。可以使用下面两个步骤解决。

第一步:删除mac地址


image.png

image.png

第二步:删除70-persistentce-net.rules


image.png

这个文件绑定了网卡和mac地址,所以换了网卡以后MAC地址变了,然后直接删除重启,它会自动生成个。

重启后再用ifup eth0 ifconfig up eth0命令就能看到了。

zookeeper的集群

1、首先使用的是192.168.25.126这台服务器,前面6步与zookeeper安装一致,唯一区别就是配置文件修改不一样


image.png


注:2888是leader与follower之间通信的端口,3888是投票使用的端口(数字不做要求,但应避免冲突)。

2、将配置好的apps下的zookeeper传到另外两台linux

[root@localhost ~]# scp -r apps 192.168.25.127:/root
root@192.168.25.127's password: 
...
[root@localhost ~]# scp -r apps 192.168.25.125:/root
root@192.168.25.127's password: 
...

3、zkdata文件夹下创建myid文件设置值为2

[root@localhost zkdata]# echo 2 > myid
[root@localhost zkdata]# cat myid
2

4、分别切换至192.168.25.127和192.168.25.125两台服务器,同样创建zkdata,zkdata下创建myid文件设置值分别为1,3。

注意:myid里面设置的值一定要与配置文件里设定的一致。

5、再分别启动三条服务器,查看是否启动成功

[root@localhost bin]# ./zkServer.sh status
JMX enabled by default
Using config: /root/apps/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower

[root@localhost bin]# ./zkServer.sh status
JMX enabled by default
Using config: /root/apps/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: leader

[root@localhost bin]# ./zkServer.sh status
JMX enabled by default
Using config: /root/apps/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower


一个leader两个follower


如果启动的了查看状态发现没有启动成功。除了zookeeper安装时候出现的问题,这里主要的问题就是zkdata文件夹下的myid的值写的跟配置文件里面不一致,这个时候会出现ConnectionException:拒绝连接的异常,检查修改一下。如果是地址被占用那么就用上面介绍的方法。


停止leader,看看是否能选举出新的leader


目录
相关文章
|
5月前
|
消息中间件 运维 Java
搭建Zookeeper、Kafka集群
本文详细介绍了Zookeeper和Kafka集群的搭建过程,涵盖系统环境配置、IP设置、主机名设定、防火墙与Selinux关闭、JDK安装等基础步骤。随后深入讲解了Zookeeper集群的安装与配置,包括数据目录创建、节点信息设置、SASL认证配置及服务启动管理。接着描述了Kafka集群的安装,涉及配置文件修改、安全认证设置、生产消费认证以及服务启停操作。最后通过创建Topic、发送与查看消息等测试验证集群功能。全网可搜《小陈运维》获取更多信息。
362 1
|
9月前
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
|
11月前
|
存储 负载均衡 监控
dubbo学习一:zookeeper与dubbo的关系,下载安装启动zookeeper(解决启动中报错)
这篇文章是关于Apache Dubbo框架与Zookeeper的关系,以及如何下载、安装和启动Zookeeper的教程,包括解决启动过程中可能遇到的报错问题。
387 3
dubbo学习一:zookeeper与dubbo的关系,下载安装启动zookeeper(解决启动中报错)
|
11月前
|
分布式计算 Java Hadoop
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
187 1
|
11月前
|
分布式计算 监控 Hadoop
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
157 1
|
11月前
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
173 1
|
11月前
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
197 1
|
11月前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
146 0
|
Docker 容器
Docker 安装 Zookeeper
Docker 安装 Zookeeper
220 2
|
Java Linux Docker
【zookeeper 第二篇章】windows、linux、docker-compose 安装 zookeeper
本文介绍Zookeeper在不同环境下的安装方法。Linux安装需备好JDK,下载并解压Zookeeper后,复制`zoo_sample.cfg`为`zoo.cfg`,最后运行`zkServer.sh start`启动服务。Windows安装类似,通过`zkServer.bat`启动。使用Docker-Compose则需编写配置文件,并通过`docker-compose up -d`后台启动容器。
251 0