配置
把样例配置拷贝成zoo.cfg
cp zoo_sample.cfg zoo.cfg
注意事项
每个节点zoo.cfg一样,myid不一样。myid中的数值必须是zoo.cfg里server.id中的一个id值。
tickTime
以毫秒为单位。心跳时间,默认情况下最小的会话超时时间为两倍的 tickTime。
initLimit
初始化连接时Leader 与 Follower 之间最长能忍受多少个心跳时间间隔数。当已经超过5个心跳的时间(也就是 tickTime)长度后 Zookeeper服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒
syncLimit
标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒
server.id
server.id=serverhost:leader_listent_port:quorum_port
顾名思义,id是本服务器的id,leader_listen_port是该服务器一旦成为leader之后需要监听的端口,用于接收来自follower的请求,quorum_port是集群中的每一个服务器在最开始选举leader时监听的端口,用于服务器互相之间通信选举leader.
serverid和myid保持一致。
tickTime=2000
dataDir=/foo/zk/data
dataLogDir=/foo/zk/log
clientPort=2181
initLimit=5
syncLimit=2
maxClientCnxns=200000
minSessionTimeout=1000
maxSessionTimeout=180000
server.1=foo1:2888:3888
server.2=foo2:2888:3888
server.3=foo3:2888:3888
server.4=foo4:2888:3888
server.5=foo5:2888:3888
admin.serverPort=8080
dataDir下创建myid文件内容从1开始自增每个机器不一样即可。
1
启动
bin/zkServer.sh start
# 下面参数返回启动日志,可以用来排查问题
bin/zkServer.sh start-foreground
Kerberos配置
zoo.cfg
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
jaasLoginRenew=3600000
在conf目录创建如下两个文件
创建jaas.conf文件
Server {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/opt/apache-zookeeper/conf/zookeeper.keytab"
storeKey=true
useTicketCache=false
principal="zookeeper/krb03.k.com@K.COM";
};
创建java.env文件
export JVMFLAGS="-Djava.security.auth.login.config=/opt/apache-zookeeper/conf/jaas.conf"