ubuntu下 Zookeeper安装与集群

简介

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值