Zookeeper的安装和基本操作
Zookeeper概念
Zookeeper是Apache Hadoop项目下的一个子项目,是一个树形目录服务。
Zookeeper翻译过来就是动物园管理员,他是用来管Hadoop(大象)、Hive(蜜蜂)、Pig(小猪)的管理员。简称zk
Zookeeper是一个分布式的、开源的分布式应用程序的协调服务。
Zookeeper提供的主要功能包括:
- 配置管理
- 分布式锁
- 集群管理(注册中心)
Zookeeper的安装(linux)
- 上传zookeeper压缩包
- 将压缩包移动到 /opt/zookeeper 目录下
mv /root/apache-zookeeper-3.5.8-bin.tar.gz /opt/zookeeper/ - 解压压缩包
tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz - 修改配置文件
- 进入到conf目录
cd /opt/zookeeper/apache-zookeeper-3.5.8-bin/conf/ - 拷贝
cp zoo_sample.cfg zoo.cfg (这一步必做,zookeeper的配置文件的名称是zoo才会生效) - 修改存储目录:dataDir=/opt/zookeeper/zkdata
[root@zyh conf]# vim 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=/opt/zookeeper/zkdata # 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 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1 ~ ~ "zoo.cfg" 28L, 929C
- 进入到conf目录
- 启动zookeeper
cd /opt/zooKeeper/apache-zookeeper-3.5.8-bin/bin/
启动
./zkServer.sh start
查看ZooKeeper状态
./zkServer.sh status
停止
./zkServer.sh stop
zookeeper数据模型
- ZooKeeper是一个树形目录服务,其数据模型和Unix的文件系统目录树很类似,拥有一个层次化结构。
- 这里面的每一个节点都被称为:ZNode,每个节点上都会保存自己的数据和节点信息。
- 节点可以拥有子节点,同时也允许少量(1MB)数据存储在该节点之下。
- 节点可以分为四大类:
PERSISTENT持久化节点
EPHEMERAL临时结点:-e
PERSISTENT SEQUENTIAL持久化顺序节点:-s
EPHEMERAL SEQUENTIAL临时顺序节点:-es
Zookeeper命令
Zookeeper服务端常用命令
启动ZooKeeper服务:/zkServer.sh start
查看ZooKeeper服务状态:/zkServer.sh status
停止ZooKeeper服务:/zkServer.sh stop
重启ZooKeeper服务:./zkServer.sh restart
Zookeeper客户端常用命令
连接ZooKeeper服务端
./zkCli.sh -server ip:port (连接本机的时候可以省略-server ip:port )
断开连接
quit
查看命令帮助
help
显示指定目录下节点
ls 目录
设置节点值
set /节点path value
删除单个节点
delete /节点path
删除带有子节点的节点
deleteall /节点path
创建节点
create /节点path value
获取节点值
get /节点path
创建临时节点
create -e /节点path value
退出
quit (再次使用zk-cli连接服务端,验证刚才创建的临时节点已经没了)
创建顺序节点,zk会自动在节点路径后边添加序号
create -s /节点path value
查询节点详细信息
ls –s /节点path
详细信息如下:
•czxid:节点被创建的事务ID
•ctime: 创建时间
•mZxid: 最后一次被更新的事务ID
•mtime: 修改时间
•pzxid:子节点列表最后一次被更新的事务ID
•cversion:子节点的版本号
•dataversion:数据版本号
•aclversion:权限版本号
•ephemeralOwner:用于临时节点,代表临时节点的事务ID,如果为持久节点则为0
•dataLength:节点存储的数据的长度
•numChildren:当前节点的子节点个数