ubuntu下 Zookeeper安装与集群

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 简介ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

简介

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

单机模式

1、下载

wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz

2、解压

tar -zxvf zookeeper-3.4.9.tar.gz

3、进入conf目录把zoo_samp.cfg cp zoo.cfg

cp zoo_samp.cfg  zoo.cfg

4、配置zoo.cfg

vim zoo.cfg

tickTime=2000   
initLimit=10 
syncLimit=5 
dataDir=/tmp/zookeeper
clientPort=2181


参数说明:

tickTime: zookeeper中使用的基本时间单位, 毫秒值.
dataDir: 数据目录. 可以是任意目录.
dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置.
clientPort: 监听client连接的端口号.
syncLimit=5 # Leader与Follower之间的最大响应时间单位,响应超过syncLimit*tickTime,Leader认为Follwer死掉
initLimit=10 # 投票选举新leader的初始化时间

5、启动zookeeper

bin/zkServer.sh start  

6、 Server启动之后, 就可以启动client连接server了, 执行脚本

bin/zkCli.sh -server localhost:2181

7运行结果

这里写图片描述

伪集群模式

1、复制两份 zookeeper

cp -r zookeeper-3.4.9-0 zookeeper-3.4.9-1
cp -r zookeeper-3.4.9-0 zookeeper-3.4.9-2

2、修改zoo.cfg

只需更改dataDir, dataLogDir, clientPort参数即可.

2.1、 1号 机zoo.cfg

tickTime=2000   
initLimit=10 
syncLimit=5 
dataDir=/tmp/zookeeper1
clientPort=2181
server.0=127.0.0.1:8880:7770    
server.1=127.0.0.1:8881:7771    
server.2=127.0.0.1:8882:7772  

#server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口. 由于配置的是伪集群模式, 所以各个server的B, C参数必须不同.

2.1、 2号 机zoo.cfg

tickTime=2000   
initLimit=10 
syncLimit=5 
dataDir=/tmp/zookeeper2
clientPort=2182
server.1=127.0.0.1:8880:7770    
server.2=127.0.0.1:8881:7771    
server.3=127.0.0.1:8882:7772  

#server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口. 由于配置的是伪集群模式, 所以各个server的B, C参数必须不同.

2.2、 2号 机zoo.cfg

tickTime=2000   
initLimit=10 
syncLimit=5 
dataDir=/tmp/zookeeper2
clientPort=2182
server.1=127.0.0.1:8880:7770    
server.2=127.0.0.1:8881:7771    
server.3=127.0.0.1:8882:7772 

#server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口. 由于配置的是伪集群模式, 所以各个server的B, C参数必须不同.

2.3、 3号 机zoo.cfg

tickTime=2000   
initLimit=10 
syncLimit=5 
dataDir=/tmp/zookeeper3
clientPort=2183
server.1=127.0.0.1:8880:7770    
server.2=127.0.0.1:8881:7771    
server.3=127.0.0.1:8882:7772  

#server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口. 由于配置的是伪集群模式, 所以各个server的B, C参数必须不同.

3、dataDir中新建myid文件

在之前设置的dataDir中新建myid文件, 写入一个数字, 该数字表示这是第几号server. 该数字必须和zoo.cfg文件中的server.X中的X一一对应.

/Users/apple/zookeeper1/data/myid文件中写入1,
/Users/apple/zookeeper2/data/myid文件中写入2,
/Users/apple/zookeeper3/data/myid文件中写入3.

4、客户端连接

查看leader

./zkServer.sh status
相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
11小时前
|
Ubuntu Python
Ubuntu 安装Python3.8
Ubuntu 安装Python3.8
39 0
|
11小时前
|
并行计算 Shell Docker
【环境配置】Ubuntu16.04安装nvidia-docker
【环境配置】Ubuntu16.04安装nvidia-docker
13 2
|
11小时前
|
并行计算 Ubuntu
Ubuntu安装CUDA和cuDNN
Ubuntu安装CUDA和cuDNN
8 3
|
12小时前
|
Ubuntu NoSQL 数据安全/隐私保护
如何在在虚拟机中安装Ubuntu
如何在在虚拟机中安装Ubuntu
7 0
|
11小时前
|
SQL 分布式计算 关系型数据库
Ubuntu上安装MySQL以及hive
Ubuntu上安装MySQL以及hive
11 1
|
11小时前
|
Ubuntu Unix Linux
在Ubuntu安装RPM文件
Ubuntu使用`apt`和`alien`工具安装软件。`deb`是Ubuntu的标准包格式,但通过`alien`可转换及安装`RPM`包。首先确保启用`Universe`源,然后安装`alien`。转换RPM包为DEB包,运行`sudo alien package_name.rpm`,接着用`sudo apt install package_name.deb`安装。直接安装RPM包可使用`sudo alien -i package_name.rpm`,但这种方法不推荐,可能导致依赖性冲突和系统不稳定。
26 10
|
11小时前
|
Ubuntu
ubuntu软件包安装
ubuntu软件包安装
15 1
|
11小时前
|
分布式计算 Ubuntu Java
PySpark安装及WordCount实现(基于Ubuntu)
现在,你已经成功安装了PySpark并实现了WordCount示例。你可以根据实际需求修改脚本以处理不同的文本数据。
14 0
|
11小时前
|
Ubuntu 应用服务中间件 nginx
ubuntu编译安装nginx及安装nginx_upstream_check_module模块
以上是编译安装Nginx和安装 `nginx_upstream_check_module`模块的基本步骤。根据你的需求和环境,你可能需要进一步配置Nginx以满足特定的要求。
23 3
|
11小时前
|
资源调度 JavaScript Ubuntu
Yarn介绍及快速安装Debian/Ubuntu Linux
现在,你已经成功安装了Yarn,可以在你的JavaScript项目中使用它来管理依赖。
50 3