前置条件:
1,启动了3台虚拟机,并且相互之间可以ping通
2,下载好zookeeper-3.4.6.tar.gz
3,安装好了jdk
开始:
一,上传zookeeper-3.4.6.tar.gz至虚拟机的/usr/local/下
二,上传成功后,解压: tar -zxvf zookeeper-3.4.6.tar.gz
改文件名:mv zookeeper-3.4.6 zookeeper
三,编辑hosts文件,三台机器的ip和机器名关联,命令: vi /etc/hosts
也可以不修改hosts文件,直接写ip
172.20.10.10 hadoop03
172.20.10.8 hadoop04
172.20.10.9 hadoop05
四,以zoo_example.cfg为基础,添加自己的配置,之所以以这个为基础,是因为我若自己新建一个zoo.cfg,内容全由我编辑的话,会报错,显示缺少一些参数。最终的zoo.cfg如下:
dataDir=/home/data/zookeeper
dataLogDir=/home/log/zookeeper
server.1=hadoop03:2888:3888
server.2=hadoop04:2888:3888
server.3=hadoop05:2888:3888
tickTime=2000
initLimit=10
syncLimit=5
clientPort=2181
五,创建相关文件。注意这里myid,3台虚拟机上myid的值不要相同。
mkdir -p /home/data/zookeeper
mkdir -p /home/log/zookeeper
cd /home/data/zookeeper
echo 3 > myid
六,启动。 在/usr/local/zookeeper路径下。命令:sh bin/zkServer.sh start
这里 sh bin/zkServer.sh start-foreground 可以查看启动的报错日志
七,在另外两台虚拟机上进行同样的操作。最终3台虚拟机上zookeeper都启动成功。
都启动成功之后,可以查看状态sh bin/zkServer.sh status(3台都启动成功之后,再查看)
相关知识点:
zookeeper集群一大特性是只要集群中半数以上的节点存活,集群就可以正常提供服务
dataDir=/home/data/zookeeper
dataLogDir=/home/log/zookeeper
server.1=172.20.10.10:2888:3888
server.2=172.20.10.8:2888:3888
server.3=172.20.10.9:2888:3888
tickTime=2000
initLimit=10
syncLimit=5
clientPort=2181
1. 启动ZK服务: sh bin/zkServer.sh start
2. 查看ZK服务状态: sh bin/zkServer.sh status
3. 停止ZK服务: sh bin/zkServer.sh stop
4. 重启ZK服务: sh bin/zkServer.sh restart
zkCli.sh -server 127.0.0.1:2181 连接到 ZooKeeper 服务,连接成功后,系统会输出 ZooKeeper 的相关环境以及配置信息。
命令行工具的一些简单操作如下:
1. 显示根目录下、文件: ls / 使用 ls 命令来查看当前 ZooKeeper 中所包含的内容
2. 显示根目录下、文件: ls2 / 查看当前节点数据并能看到更新次数等数据
3. 创建文件,并设置初始内容: create /zk "test" 创建一个新的 znode节点“ zk ”以及与它关联的字符串
4. 获取文件内容: get /zk 确认 znode 是否包含我们所创建的字符串
5. 修改文件内容: set /zk "zkbak" 对 zk 所关联的字符串进行设置
6. 删除文件: delete /zk 将刚才创建的 znode 删除
7. 退出客户端: quit
8. 帮助命令: help