zk3.4.1集群安装维护

环境:centos7.5
软件版本:zookeeper-3.4.11
jdk:1.8
主机信息:
2181
192.168.1.18
192.168.1.19
192.168.1.20

1、软件下载
wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz

2、检查是否存在java版本
[root@ip-192-168-1-20 ~]# rpm -qa |grep java
如果有的话先删除
[root@localhost /]# rpm -qa|grep java
[root@localhost /]# rpm -e java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64 --nodeps
[root@localhost /]# rpm -e java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64 --nodeps

mkdir /usr/local/java
tar -zxvf jdk-8u161-linux-x64.tar.gz -C /usr/local/java/

3、jdk安装
wget ftp://10.249.100.249/pub/jdk/jdk8/*


4、安装软件
tar -zxvf zookeeper-3.4.11.tar.gz -C /usr/local/

vi /etc/profile
export ZK_HOME=/usr/local/zookeeper-3.4.11
export PATH=$ZK_HOME/bin:$PATH

source /etc/profile

5、配置Zookeeper的配置文件
cd /usr/local/zookeeper-3.4.11/conf
cp zoo_sample.cfg zoo.cfg

vi zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/logs
clientPort=2181
server.1= 192.168.1.18:2888:3888
server.2= 192.168.1.19:2888:3888
server.3= 192.168.1.20:2888:3888

建立目录
mkdir -p /data/zookeeper/data
mkdir -p /data/zookeeper/logs

首先 修改 dataDir,顾名思义就是【数据目录】了,修改成我们自定义的即可。
然后看下面的三个server:
(1)为什么是三个,因为Zookeeper喜欢奇数不喜欢偶数。
(2)三行server解释

server.X=A:B:C
X-代表服务器编号
A-代表ip
B和C-代表端口,这个端口用来系统之间通信

根据dataDir进行X的配置【这里三台服务器不一样!!!】
找到Zookeeper目录,新建data文件夹,并且在data文件夹下面创建一个文件,叫myid,并且在文件里写入server.X对应的X

cd data
vim myid
#之后会产生一个新文件,直接在里面写 X 即可
#比如我配置的三个server,myid里面写的X就是server.X=ip:2888:3888 中ip所对应的X

分别写入 0 1 2

6、启动
source /etc/profile
启动
zkServer.sh start
[root@ip-192-168-1-18 data]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.11/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

检查状态
zkServer.sh status
三台状态如下
[root@ip-192-168-1-18 logs]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.11/bin/../conf/zoo.cfg
Mode: follower

[root@ip-192-168-1-19 logs]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.11/bin/../conf/zoo.cfg
Mode: leader

[root@ip-192-168-1-20 logs]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.11/bin/../conf/zoo.cfg
Mode: follower

7、常用命令
 启动ZK服务: bin/zkServer.sh start
 查看ZK服务状态: bin/zkServer.sh status
 停止ZK服务: bin/zkServer.sh stop
 重启ZK服务: bin/zkServer.sh restart 
 连接服务器: zkCli.sh -server 127.0.0.1:2181
 
zkCli.sh -server 127.0.0.1:2181
help命令来查看帮助:
[zk: 127.0.0.1:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
    stat path [watch]
    set path data [version]
    ls path [watch]
    delquota [-n|-b] path
    ls2 path [watch]
    setAcl path acl
    setquota -n|-b val path
    history 
    redo cmdno
    printwatches on|off
    delete path [version]
    sync path
    listquota path
    rmr path
    get path [watch]
    create [-s] [-e] path data acl
    addauth scheme auth
    quit 
    getAcl path
    close 
    connect host:port
    
ls -- 查看某个目录包含的所有文件
[zk: 127.0.0.1:2181(CONNECTED) 2] ls /
[zookeeper]

ls2 -- 查看某个目录包含的所有文件,与ls不同的是它查看到time、version等信息[zk: 127.0.0.1:2181(CONNECTED) 3] ls2 /
[zookeeper]
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1

create -- 创建znode,并设置初始内容
[zk: 127.0.0.1:2181(CONNECTED) 4] create /test "test"
Created /test
创建一个新的 znode节点“ test ”以及与它关联的字符串

get -- 获取znode的数据
[zk: 127.0.0.1:2181(CONNECTED) 5] get /test
test
cZxid = 0x100000005
ctime = Fri Aug 17 17:31:58 CST 2018
mZxid = 0x100000005
mtime = Fri Aug 17 17:31:58 CST 2018
pZxid = 0x100000005
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 0

set -- 修改znode内容
[zk: 127.0.0.1:2181(CONNECTED) 6] set /test "ricky"
cZxid = 0x100000005
ctime = Fri Aug 17 17:31:58 CST 2018
mZxid = 0x100000007
mtime = Fri Aug 17 17:32:27 CST 2018
pZxid = 0x100000005
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 0

delete -- 删除znode
[zk: 127.0.0.1:2181(CONNECTED) 7] delete /test

quit -- 退出客户端

help -- 帮助命令

======================================
ZooKeeper支持某些特定的四字命令字母与其的交互。它们大多是查询命令,用来获取ZooKeeper服务的当前状态及相关信息。
用户在客户端可以通过 telnet 或nc向ZooKeeper提交相应的命令

yum install nc

1. 可以通过命令:echo stat|nc 127.0.0.1 2181 来查看哪个节点被选择作为follower或者leader
2. 使用echo ruok|nc 127.0.0.1 2181 测试是否启动了该Server,若回复imok表示已经启动。
3. echo dump| nc 127.0.0.1 2181 ,列出未经处理的会话和临时节点。
4. echo kill | nc 127.0.0.1 2181 ,关掉server
5. echo conf | nc 127.0.0.1 2181 ,输出相关服务配置的详细信息。
6. echo cons | nc 127.0.0.1 2181 ,列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息。
7. echo envi |nc 127.0.0.1 2181 ,输出关于服务环境的详细信息(区别于conf命令)。
8. echo reqs | nc 127.0.0.1 2181 ,列出未经处理的请求。
9. echo wchs | nc 127.0.0.1 2181 ,列出服务器 watch 的详细信息。
10. echo wchc | nc 127.0.0.1 2181 ,通过 session 列出服务器 watch 的详细信息,它的输出是一个与 watch 相关的会话的列表。
11. echo wchp | nc 127.0.0.1 2181 ,通过路径列出服务器 watch 的详细信息。它输出一个与 session 相关的路径

===========================
znode节点的状态信息:

使用get命令获取指定节点的数据时, 同时也将返回该节点的状态信息, 称为Stat. 其包含如下字段:

czxid. 节点创建时的zxid.
mzxid. 节点最新一次更新发生时的zxid.
ctime. 节点创建时的时间戳.
mtime. 节点最新一次更新发生时的时间戳.
dataVersion. 节点数据的更新次数.
cversion. 其子节点的更新次数.
aclVersion. 节点ACL(授权信息)的更新次数.
ephemeralOwner. 如果该节点为ephemeral节点, ephemeralOwner值表示与该节点绑定的session id. 如果该节点不是ephemeral节点, ephemeralOwner值为0. 至于什么是ephemeral节点, 请看后面的讲述.
dataLength. 节点数据的字节数.
numChildren. 子节点个数.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值