一,Zookeeper的选举机制
1:zxid 该数值越大表示数据越新
2:myid 每个Zookeeper集群中,主机的编号
3:选举时有个过半机制
二,Zookeeper的数据模型
1:Zookeeper中存储的数据大小一般不会超过1M
2:Zookeeper中访问数据只能使用绝对路径
3:每个 Znode 由 3 部分组成:
stat:此为状态信息, 描述该 Znode 的版本, 权限等信息
data:与该 Znode 关联的数据
children:该 Znode 下的子节点
三,Znode的节点类型
PERSISTENT:永久节点
EPHEMERAL:临时节点
PERSISTENT_SEQUENTIAL:永久节点、序列化
EPHEMERAL_SEQUENTIAL:临时节点、序列化
四,Znode的节点操作
1:客户端登录znode
bin/zkCli.sh -server node02:2181 #方式1
bin/zkCli.sh #方式2
2:命令操作
永久节点
create /hello world
永久序列化
create -s /hello world
临时节点
create -e /hello world
临时序列化
create -s -e /hello world
创建子节点:
create /hello/aaa world #临时节点不能创建子节点
修改节点数据
set /hello zookeeper
删除节点, 如果要删除的节点有子Znode则无法删除
delete /hello
删除节点, 如果有子Znode则递归删除
rmr /abc
列出历史记录
histroy
获取节点属性:
get /hello
ephemeralOwner = 0x36d14c88edf0001 #临时节点
ephemeralOwner = 0x0 #永久节点
当然,在这之前还要配置zookeeper
##下载安装包、解压
tar -zxvf zookeeper-3.4.5.tar.gz
mv zookeeper-3.4.5 zookeeper
##修改环境变量(注意:3台zookeeper都需要修改)
vi /etc/profile
export ZOOKEEPER_HOME=/home/hadoop/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profile
##修改Zookeeper配置文件
cd zookeeper/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
添加内容:
dataDir=/root/apps/zookeeper/zkdata
## (心跳端口、选举端口)
server.1=mini1:2888:3888
server.2=mini2:2888:3888
server.3=mini3:2888:3888
创建文件夹:
cd /home/hadoop/zookeeper/
mkdir zkdata
在data文件夹下新建myid文件,myid的文件内容为:
cd zkdata
echo 1 > myid
##分发安装包到其他机器
scp -r /root/apps root@mini2:/root/
scp -r /root/apps root@mini3:/root/
##修改其他机器的配置文件
修改myid文件
到mini2上:修改myid为:2
到mini3上:修改myid为:3
##启动(每台机器)
zkServer.sh start
或者编写一个脚本来批量启动所有机器:
for host in "hadoop01 hadoop02 hadoop03"
do
ssh $host "source/etc/profile;/root/apps/zookeeper/bin/zkServer.sh start"
done
##查看集群状态
jps(查看进程)
zkServer.sh status(查看集群状态,主从信息)如果启动不成功,查看错误信息进行排查
启动zookeeper:
bin/zkServer.sh start
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
类外再为各位加上jdk的配置
export JAVA_HOME=/root/apps/jdk1.8.0_65
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar