Zookeeper集群搭建

zookeeper集群搭建

前提条件
  • 至少三台服务器,并且是奇数
  • 安装好JDK并配置好环境变量
官网下载
#解压
tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz
新建data和log存放日志
创建一个dataDir(需要在conf配置中指定位置)目录用于存放数据
新建myid
#在dataDir目录下创建一个myid文件用于记录该zookeeper在集群中的id(保证唯一就行)
#在其他服务器一次执行同样的步骤,比如A服务器myid指定为1,B服务器myid指定为2.

vim dataDir/myid
## 内容
1

#集群模式下配置一个文件myid,这个文件在daraDir目录下,
#这个文件里面就有配置的值,Zookeeper启动时读取此文件
#拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。
进入config目录,修改配置文件
#复制一份zoo_sample.cfg 官方也是建议复制一份,不要在事例配置文件修改
# 复制一份示例配置文件
cp ./zoo_sample.cfg conf/zoo.cfg
# 编辑 zoo.cfg
vim conf/zoo.cfg
#进行编辑,可以先用默认配置,在末尾加入以下配置,
#在其他服务器加上同样的配置,但是myid需要更改保证每台服务器唯一就行,和Ip对应
#server后面的数字唯一标识是哪台服务器,便于寻找服务
#ip对应服务器ip,后面的数字简单点解释:2888是集群内部通信的端口和3888是选举端口
server.1=ip:2888:3888
server.2=ip:2888:3888
server.3=ip:2888:3888

下面是zoo.cfg的配置文件详情


# The number of milliseconds of each tick
#这个时间是作为Zookeeper服务器之间或者客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一下心跳。
tickTime=2000

# The number of ticks that the initial
# synchronization phase can take
#这个配置项是用来配置zookeeper接受客户端的(这里所说的客户端不是用户连接Zookeeper服务器的
#客户端而是Zookeeper服务器集群中连接到Leader的Follower服务器)初始化连接时最长能忍受多少个心跳时间间隔数。
#当已经超过10个心跳的时间(也就是tickTime)长度后Zookeeper服务器还没有接到客户端的返回信息
#那么表明这个客户端连接失败。总时间长度就是10*2000=20秒。
initLimit=10

# The number of ticks that can pass between
# sending a request and getting an acknowledgement
#这个配置项标示Leader与Follower之间发送消息、请求和应答时间长度,
#最长不能超过多少个tickTime的时间长度,总的时间长度就是5*2000=10秒。
syncLimit=5

# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
#Zookeeper保存数据的目录,默认情况下,Zookeeper将数据的日志文件也保存在这里。
#这个改成自己知道的目录
dataDir=/usr/dev-environment/zk/dataDir
#短文本 这个路径需要新建的 
#dataLogDir=/usr/dev-environment/zk/dataLogDir

# the port at which the clients will connect
#这个端口就是客户端连接Zookeeper服务器的端口。Zookeeper会监听这个端口,接受客户端的访问请求。
clientPort=2181
#启动时端口默认是8080,如果被占用了,需要修改一个未被使用的端口
#admin.serverPort=8088
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60

#autopurge.purgeInterval=1
#四字命令白名单
4lw.commands.whitelist=*

# server.A=ip:2888:3888
#集群需要配置的ip,'xxxxxip'改成真实的服务器Ip,后面的
#其中A是一个数字,标示这是第几号服务器;
#ip是这个服务器的ip地址;
#2888标示的是这个服务器与集群中的Leader服务器交换信息的端口(可以自定义);
#3888标示的是万一集群中Leader服务器挂了,需要一个端口来进行选举(可以自定义),
#选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
#如果是伪集群的配置方式,由于B都是一样,所以不同的Zookeeper实例通信端口号不能一样,所以要给他们分配不同的端口号。

#我是这样配置的
server.1=ip:2888:3888
server.2=ip:2888:3888
server.3=ip:2888:3888

#支持外网访问互通(内网打通不用管)
quorumListenOnAllIPs=true
进入bin目录分别在不同服务器启动服务,查看状态
zkServer.sh start 启动zk服务
zkServer.sh stop 停止zk服务
zkServer.sh restart 重启zk服务
zkServer.sh status 查看zk服务状态

启动后浏览器也可以访问查看状态:http://ip:8080/commands

注意事项
  • linux环境下下载的安装包一定要是包含bin的包,例如:apache-zookeeper-3.5.9-bin.tar.gz
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值