zookeeper在linux服务器上的安装和配置
安装kafka前先确认服务器上是否已经安装了Java和zookeeper
1. zookeeper的安装和配置
1.1 下载
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
1.2 解压
tar -xzf apache-zookeeper-3.7.0-bin.tar.gz
1.3 编辑配置文件zoo.cfg
cd apache-zookeeper-3.7.0-bin/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
1.3.1 修改数据和日志存储路径(保证路径确实存在,如不存在则创建该目录)
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/log
1.3.2 集群配置
在clientPort下面添加服务器的ip。如
server.1=IP1:2888:3888
server.2=IP2:2888:3888
server.3=IP3:2888:3888
如果电脑内存比较小,zookeeper还可以设置成伪集群。也就是全部服务器采用同一个ip,但是使用不同的端口。
1.3.2.1 添加myid文件
在dataDir目录中,创建一个名为myid的文件,并写入机器对应的数字值,比如我们是在zoo-1的机器上,就将该值设置为1,即集群中sever.1=zoo-1:2888:3888中server.后对应的数字。这是zookeeper用来识别是那一台集群机器的标识。
#/data/zookeeper/data不存在则新增
mkdir -p /data/zookeeper/data
echo "1" > /data/zookeeper/data/myid
1.3.2.2 在另外两台服务器上安装zookeeper
- 重复步骤1.1~1.3.2
- 唯一不同的地方是每个dataDir下的myid中的内容要按照zoo.cfg配置文件中的集群信息设置。比如:IP2对应集群中的server.2,所以在myid中写入2
1.4 启动zookeeper
集群对启动顺序没有要求,当集群的所有服务器启动完毕后,集群会自动选举一个服务器作为leader,其余服务器作为follower
bin/zkServer.sh start
1.4 zoo.cfg配置信息详细说明
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/tmp/zookeeper/data #zookeeper数据目录
dataLogDir=/tmp/zookeeper/log
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#设置集群信息,此处的zoo-x可以用ip地址代替
server.1=IP1:2888:3888
server.2=IP2:2888:3888
server.3=IP3:2888:3888
2.常用的zookeeper命令
- 启动ZK服务: bin/zkServer.sh start
- 查看ZK服务状态: bin/zkServer.sh status
- 停止ZK服务: bin/zkServer.sh stop
- 重启ZK服务: bin/zkServer.sh restart
- 连接服务器: zkCli.sh -server 127.0.0.1:2181
1.ls -- 查看某个目录包含的所有文件,例如:
[zk: 127.0.0.1:2181(CONNECTED) 1] ls /
2.ls2 -- 查看某个目录包含的所有文件,与ls不同的是它查看到time、version等信息,例如:
[zk: 127.0.0.1:2181(CONNECTED) 1] ls2 /
3.create -- 创建znode,并设置初始内容,例如:
[zk: 127.0.0.1:2181(CONNECTED) 1] create /test "test"
Created /test
创建一个新的 znode节点“ test ”以及与它关联的字符串
4.get -- 获取znode的数据,如下:
[zk: 127.0.0.1:2181(CONNECTED) 1] get /test
5.set -- 修改znode内容,例如:
[zk: 127.0.0.1:2181(CONNECTED) 1] set /test "ricky"
6.delete -- 删除znode,例如:
[zk: 127.0.0.1:2181(CONNECTED) 1] delete /test
7.quit -- 退出客户端
8.help -- 帮助命令