一、单节点配置
1、修改zoo.cfg
$ mv zoo_sample.cfg zoo.cfg
#修改路径
dataDir=/opt/modules/zookeeper-3.4.5-cdh5.3.6/zkData
2、启动zkServer.sh(在zook下)
$ bin/zkServer.sh start
3、观察状态
$ bin/zkServer.sh status
Mode: standalone
4、启动bin/zkCli.sh
$ bash zkCli.sh start
5、基本操作命令
ls /
create /hello 123
create /hello/h1 321
get /hello
get /hello/h1
set /hello helloworld #覆盖
delete /hello
quit
二、 分布式配置[01台服务器]
1、添加一个zoo.cfg配置文件
$ cd /conf
$ mv zoo_sample.cfg zoo.cfg
2、修改配置文件(zoo.cfg)
tickTime=2000 ##Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳。tickTime以毫秒为单位。
initLimit=5 ##集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量);就是启动时超过了5*2000ms之后,leader就认为f没成功启动
syncLimit=2 ##集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量);L和F之间容忍的最多同步次数;过了2000*2ms之后还没收到f的心跳就认为断了
##Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里
dataDir=/opt/modules/zookeeper-3.4.5-cdh5.3.6/zkData
clientPort=2181 ##客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求
## 设置所有zk的id(格式:server.N=主机名: LF通信端口:选举leader端口)
server.1=master:2888:3888
server.2=node1:2888:3888
server.3=node2:2888:3888
3、创建myid文件
$ touch myid
$ echo "1" > myid
在(dataDir=/opt/modules/zookeeper-3.4.5-cdh5.3.6/zkData)创建一个myid文件,里面内容是server.N中的N(server.2里面内容为2)
4、将配置好的zk拷贝到其他节点
scp -r /opt/modules/zookeeper-3.4.5-cdh5.3.6 node1:/opt/modules/
scp -r /opt/modules/zookeeper-3.4.5-cdh5.3.6 node2:/opt/modules/
5、注意:在其他节点上一定要修改myid的内容
在bigdata02.com应该讲myid的内容改为2(echo "2" > myid)
在bigdata03.com应该讲myid的内容改为3(echo "3" > myid)
6、启动集群
01,02,03分别启动Server
$ bin/zkServer.sh start
01,02,03分别查看Server的状态(leader,follower)
$ bin/zkServer.sh status
01启动zkCli.sh
$ bin/zkCli.sh
$ create /hello 123
02启动zkCli.sh
$ bin/zkCli.sh
$ ls /
在02上面能看到01进行了修改会同步到其他节点
注:在一台上进行的修改会同步到所有zk,不分LF