安装Zookeeper 单机安装
可以安装在linux下,也可以安装在Windows中,但是官网上声明:在windows中Zookeeper不保证稳定性
1:关闭Linux防火墙
2:下载并且安装jdk,1.6以上的版本 /etc/profile
3:下载Zookeeper安装包
4:解压安装包
5:进入Zookeeper/conf zoo_sample.cfg 模板文件
6:复制 cp zoo_sample.cfg zoo.cfg
7:Zookeeper在启动时会自动加载zoo.cfg,从里面读取配置信息 dataDir(序列化的文件存储位置)=随便路径,但不要是 tmp临时文件的路径
8:创建刚才的目录(对应上面的随便路径)
9:启动命令 sh zkServer.sh start
10:确定是否启动成功
注意:返回Started不代表启动成功
jps 如果看到QuorumPeerMain 启动成功
sh zkServer.sh status 看到Mode: standalone (单机模式下) 启动成功
11:启动客户端 sh zkCli.sh 回车 在bin目录有一个zookeeper.out 日志文件 有启动问题看这里
集群安装
安装Zookeeper
可以安装在linux下,也可以安装在Windows中,但是官网上声明:在windows中Zookeeper不保证稳定性
1:关闭Linux防火墙
2:下载并且安装jdk,1.6以上的版本 /etc/profile 配置JDK环境变量
3:下载Zookeeper安装包
4:解压安装包
5:进入Zookeeper/conf zoo_sample.cfg 模板文件
6:复制 cp zoo_sample.cfg zoo.cfg
7:编辑zoo.cfg
dataDir=/home/software/zookeeper-版本/tmp 存放数据存储文件 tmp
server.编号不能重复=ip:端口1(代表原子广播端口):端口2(选举信息发送接收端口) 1和2 不能重复 只要不和已经占用的端口号冲突即可
server.1=IP1:端口1:端口2
server.2=IP2:端口1:端口2
server.3=IP3:端口1:端口2
进入数据存储的目录tmp 创建myid
编辑 myid 记录当前机器的编号1或2或3写进入 保存
scp -r zookeeper-版本 ip:/目录 拷贝文件到其他服务器
根据指定的编号修改myid
完毕
启动 sh skServer.sh start
查看启动状态 jsp 或者 sh skServer.sh status
单独启动一台主机是不提供服务的
成功 显示mode: follower或者model: leader 如果不是 则说明没连接进去集群
8:Zookeeper在启动时会自动加载zoo.cfg,从里面读取配置信息 dataDir(序列化的文件存储位置)=随便路径,但不要是 tmp临时文件的路径
9:启动客户端 sh zkCli.sh 回车 在bin目录有一个zookeeper.out 日志文件 有启动问题看这里
使用
Zookeeper的操作都是基于根节点 znode树
create /节点名 “节点值” 没有值用单引号 创建持久节点
create -s /节点名 “节点值” 创建持久顺序节点
create -e /节点名 “节点值” 创建临时节点
create -e -s /节点名 “节点值” 创建临时顺序节点
ls / 查看所有节点
ls /节点名 查看该节点下的节点 不包括该节点
get /节点名 获取该节点的值 不包括子节点
set /节点名 设置该节点的值 覆盖掉原节点的值
delete /节点名 删除该节点(注意:该节点必须没有子节点,否则或报Node not empty)
rmr /节点名 相当于递归删除,或者强制删除,删除该节点和其子节点
查看节点信息
cZxid--全局分配的创建的事务ID 创建这个节点是Zookeeper的第n个操作 (定义好了就不会变)
ctime--创建时间
mZxid--修改事务ID (记录自己本身修改)
mtime--修改时间
pZxid--表示子节点变化的事务ID (记录直接子节点的创建或删除)
cversion--记录子节点的变化次数
dataVersion--数据版本 记录当前节点的变化次数
aclVersion--acl版本 ---记录当前节点的acl的变化次数
ephemeralOwner --如果当前节点不是临时节点,那么这个属性的值为0,如果是临时节点,记录临时节点的
sessionID(只要是一个会话,都是一样的)
dataLength--数据长度 实际上是字节个数 一个英文字母一个字节,一个中文三个字节
numChildren--子节点个数
补充:看到hadoop全分布式安装的网友,这里IP1对应的是hadoop全分不是安装的2181端口写一致