单机搭建
- 下载zookeeper的安装包之后, 解压到合适目录
- 进入zookeeper目录下的conf子目录,复制zoo_sample.cfg为zoo.cfg
- 启动服务,命令如下:
1
2
3
4
5
6
7
8
9
10
11
12// 启动命令
bin/zkServer.sh start
// 其他命令
// 查看状态
bin/zkServer.sh status
// 关闭
bin/zkServer.sh stop
// 命令行客户端连接服务器
bin/zkCli.sh -server localhost:2181
// 查看JVM进程名
jps //显示Java进程名为QuorumPeerMain集群搭建
- 下载zookeeper的安装包之后, 解压到合适目录
- 进入zookeeper目录下的conf子目录,复制zoo_sample.cfg为zoo.cfg
- 更改配置(先在一台节点上配置)
1 | dataDir=/home/hadoop/app/zookeeper-3.4.5/data |
- 在dataDir下创建一个myid文件,里面内容是server.N中的N
1 | // 可用该命令实现 |
- 将配置好的zk拷贝到其他节点
1 | scp -r zookeeper-3.4.5/ yarn02:~/app/ |
- 分别启动服务即可,启动命令如上,可查看相应状态,一个为Leader,另外两个为flower
注意:
- 在其他节点上一定要修改myid的内容
- yarn01,yarn02,yarn03为域名,也可指定为ip
配置文件解析
1 | tickTime=2000 # 每个tick的毫秒数 |
tickTime:CS通信心跳时间
Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。
tickTime=2000:表示2秒发一次心跳检测
initLimit:LF初始通信时限
zookeeper集群中的包含多台server, 其中一台为leader, 集群中其余的server为follower.
集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。
此时该参数设置为5, 说明时间限制为5倍tickTime, 即5*2000=10000ms=10s.
syncLimit:LF同步通信时限
集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。
此时该参数设置为2, 说明时间限制为2倍tickTime, 即4000ms.
dataDir:数据文件目录,必须设置
Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。
dataLogDir: 日志文件目录
如果没有设置该参数, 将使用和dataDir相同的设置.
clientPort:客户端连接端口
客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
一般端口为2181。
集群信息
服务器名称与地址:
1 | // 代表含义依次为: |