大数据入门--zookeeper(一)--集群搭建与常用指令

Zookeeper单机搭建

下载官方安装包

#解压
tar -zxvf zookeeper-3.4.5.tar.gz -C /opt/module/
#配置zoo.conf,只需要将conf/zoo_sample.conf重命名为zoo.conf即可
mv conf/zoo_sample.cfg conf/zoo.cfg 
#启动
bin/zkServer.sh start
#查询状态
bin/zkServer.sh status
#停止
bin/zkServer.sh stop

Zookeeper集群搭建

敬上官方安装文档
conf/zoo.cfg 配置

#修改zookeeper数据目录
dataDir=/opt/module/zookeeper-3.4.5/zkData
#添加集群列表
#serviceId必须是数字1-255,2888:集群内部通信端口,3888:选举端口
server.1=hadoop101:2888:3888
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888

在数据目录下新建myid文件(文件名必须是myid)文件内容写入serverId
配置bin/zkEnv.sh

  • 设置JAVA_HOME(因为ssh启动时,没有环境变量)
  • 设置日志目录
# JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export ZOO_LOG_DIR=/opt/module/zookeeper-3.4.5/logs

配置完成后,启动集群

[hadoop@hadoop101 zookeeper-3.4.5]$ bin/zkServer.sh start
JMX enabled by default
Using config: /opt/module/zookeeper-3.4.5/bin/../conf/zoo.cfg
## 启动成功
Starting zookeeper ... STARTED
[hadoop@hadoop101 zookeeper-3.4.5]$ bin/zkServer.sh status
JMX enabled by default
Using config: /opt/module/zookeeper-3.4.5/bin/../conf/zoo.cfg
### ???为什么说可能没有运行。。。。
Error contacting service. It is probably not running.
### 不急,看看jps
[hadoop@hadoop101 zookeeper-3.4.5]$ jps
### 放心了,它在,只是没有正常工作,因为集群节点数没有超过半数
13776 QuorumPeerMain

这里因为我们集群配置了三个节点,目前只启动一个节点的话,集群状态是不可用的
此时在启动一台机器,集群选举成功就能共使用了

zk常用指令

指令 说明 案例
help 帮助 help
create create [-s] [-e] path data acl
-s:序列节点
-e:临时节点
create /hello world
delete 删除 delete /hello
rmr rmr path rmr /hello
ls ls path [watch] ls /
set set path data [version] set /hello aaa 0 #0是当前版本号,版本号不一致无法更新
get get path [watch] get /hello

watch

  • ls path [watch] :节点变化(NodeChildrenChanged|NodeDeleted)
  • get path [watch]:节点数据变化(NodeDataChanged|NodeDeleted)
  • stat path [watch]
  • ls2 path [watch]

Stat结构体

get 指令结果说明

[zk: localhost:2181(CONNECTED) 18] get /hello
aaa #值
cZxid = 0x200000006 #创建节点的事务ID
ctime = Sat Jun 19 13:59:48 CST 2021 #数据创建时间
mZxid = 0x200000008 #最近一次修改数据事务ID
mtime = Sat Jun 19 14:01:13 CST 2021 #最近的修改时间
pZxid = 0x200000006 #最后更新的子节点zxid,如果没有子节点初始值为自身节点创建xid
cversion = 0 #子节点变化号,znode子节点修改次数
dataVersion = 1 #数据版本号
aclVersion = 0 #访问控制列表的版本号
ephemeralOwner = 0x0 # 如果是临时节点,这个是znode拥有者的session id。如果不是临时节点则是0。
dataLength = 3 # 数据长度
numChildren = 0 # 子节点数量

你可能感兴趣的:(大数据,zookeeper,大数据,zookeeper)