博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
zookeeper 安装 && 基础知识
阅读量:7100 次
发布时间:2019-06-28

本文共 4998 字,大约阅读时间需要 16 分钟。

  1. 简介
    1. zookeeper 在 dubbo 开发过程中,用作注册中心,进行分布式数据的交互2. 分布式应用正在运行的一组系统称为集群,而在集群中运行的每台机器被称为节点。3. zookeeper 的文件系统跟 linux 一致,根节点是“/”,每一个文件目录都挂在根目录下

     

  2. 安装
    //1. 下载zookeeper文件wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz//2. 解压移动mv zookeeper-3.4.11.tar.gz /usr/local/tar xzvf zookeeper-3.4.11.tar.gzmv zookeeper-3.4.11.tar.gz zookeeper//3. 进行相应的配置,配置文件相关介绍、配置要求详见文档后面//3.1 创建数据文件夹mkdir /usr/local/zookeeper/data//3.2 创建配置文件cd /usr/local/zookeeper/confcp -r zoo_sample.cfg zoo.cfg//3.3 修改配置文件,如何修改会在后面介绍vim zoo.cfg//4. 运行zkServercd /usr/local/zookeeper/bin./zkServer.sh start//5. 运行zkCli./zkCli.sh

     

  3. 1
  4. 1

1. 简介

6. 其他要说的
1. 推荐搭建伪集群/集群模式
2. 配置文件得进行相应的配置才能进行

****

**3. zkServer的相关命令**
1. 启动
```
./zkServer.sh start
```
2. 关闭
```
./zkServer.sh stop
```
3. 重启
```
./zkServer.sh restart
```
4. 状态
1. 提示为singletone为单机模式
2. 提示为model xxxx为集群模式
3. 提示为Error contacting service. It is probably not running.也为集群模式,可考虑是否因为集群服务器只开启当前一台服务器,或配置文件有集群相关配置
```
./zkServer.sh status
```

****

**4. zkCli的相关命令**
1. ZooKeeper命令行界面(CLI)用于与ZooKeeper集合进行交互以进行开发。它有助于调试和解决不同的选项。
2. 创建znode
```
#在path1位置上创建znode,存储数据
create /path1 123season

#znode有临时节点、持久节点、临时顺序节点、持久顺序节点,默认为持久节点

#持久节点

[zk: localhost:2181(CONNECTED) 0] create /path1 123
Created /path1

#持久顺序节点(自动在节点后面添加10位顺序)

[zk: localhost:2181(CONNECTED) 1] create -s /path2 123
Created /path20000000002

#临时节点(生命随着zkCli的关闭而消失)

[zk: localhost:2181(CONNECTED) 4] create -e /path1/ee 123
Created /path1/ee

#临时顺序节点

[zk: localhost:2181(CONNECTED) 5] create -e -s /path1/es 123
Created /path1/es0000000002
```
3. 获取数据
```
[zk: localhost:2181(CONNECTED) 2] get /path1
123
cZxid = 0x100000017
ctime = Tue Mar 27 14:07:44 CST 2018
mZxid = 0x100000017
mtime = Tue Mar 27 14:07:44 CST 2018
pZxid = 0x100000017
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x100002554a10007
dataLength = 3
numChildren = 0
```
4. 监视znode的变化
```
#只需要在get命令后加上任意字符,即可执行监视操作
#注意监视操作只能执行一次,发生改动,监视完成
[zk: localhost:2181(CONNECTED) 1] get /path1 123
123
cZxid = 0x100000009
ctime = Tue Mar 27 14:00:59 CST 2018
mZxid = 0x100000009
mtime = Tue Mar 27 14:00:59 CST 2018
pZxid = 0x100000014
cversion = 6
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 2
[zk: localhost:2181(CONNECTED) 2]
WATCHER::

WatchedEvent state:SyncConnected type:NodeDataChanged path:/path1

```
5. 设置数据
```
[zk: localhost:2181(CONNECTED) 3] set /path1 345
cZxid = 0x100000009
ctime = Tue Mar 27 14:00:59 CST 2018
mZxid = 0x10000001e
mtime = Tue Mar 27 14:13:11 CST 2018
pZxid = 0x100000014
cversion = 6
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 2
```
6. 创建znode的子节点
```
#与之前的创建节点一样,只要节点不存在,即可创建成功
[zk: localhost:2181(CONNECTED) 4] create -e /path1/ee 123
Created /path1/ee
```
7. 列出znode的子节点
```
#ls列出子节点
[zk: localhost:2181(CONNECTED) 4] ls /path1
[e, es]
#get获取该节点数据
[zk: localhost:2181(CONNECTED) 5] get /path1
345

```

8. 检查状态
```
[zk: localhost:2181(CONNECTED) 4] ls /path
[001, 002]

[zk: localhost:2181(CONNECTED) 2] stat /path

cZxid = 0x100000023
ctime = Tue Mar 27 14:24:55 CST 2018
mZxid = 0x100000023
mtime = Tue Mar 27 14:24:55 CST 2018
pZxid = 0x100000025
cversion = 2
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 2

[zk: localhost:2181(CONNECTED) 5] stat /path/001

cZxid = 0x100000024
ctime = Tue Mar 27 14:25:20 CST 2018
mZxid = 0x100000024
mtime = Tue Mar 27 14:25:20 CST 2018
pZxid = 0x100000024
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
```
9. 移除/删除znode
```
#若有子节点,一并递归删除
[zk: localhost:2181(CONNECTED) 7] rmr /path1/e
#只能删除该节点数据,如果有子节点,则不能操作
[zk: localhost:2181(CONNECTED) 8] delete /path1
Node not empty: /path1
```
```
[zk: localhost:2181(CONNECTED) 12] create /path 000
Created /path
[zk: localhost:2181(CONNECTED) 13] create /path/001 001
Created /path/001
[zk: localhost:2181(CONNECTED) 14] create /path/002 002
Created /path/002
[zk: localhost:2181(CONNECTED) 16] ls /path
[001, 002]
[zk: localhost:2181(CONNECTED) 17] get /path
000
```

****

**5. 配置文件相关解释**
```
##心跳时间,为毫秒,zookeeper服务器之间进行判断是否live的设定
tickTime=2000

## 参数设定了允许所有跟随者与领导者进行连接并同步的时间,如果在设定的时间段内,半数以上的跟随者未能完成同步,领导者便会宣布放弃领导地位,进行另一次的领导选举。如果zk集群环境数量确实很大,同步数据的时间会变长,因此这种情况下可以适当调大该参数。默认为10

initLimit=10

## 参数设定了允许一个跟随者与一个领导者进行同步的时间,如果在设定的时间段内,跟随者未完成同步,它将会被集群丢弃。所有关联到这个跟随者的客户端将连接到另外一个跟随着。

syncLimit=5

#数据存放地址

dataDir=/usr/local/zookeeper/zookeeper-01/data

#客户端连接Server端口号(监听client连接的端口号)

clientPort=2181

#集群之间的配置

#server.No=IP:PortA:PortB
#No:是一个数字, 表示这是第几号server
#IP:是server所在的IP地址
#PortA:服务器与leader进行数据交换的监听端口
#PortB:leader选举监听端口
server.1=localhost:2287:3387
server.2=localhost:2288:3388
server.3=localhost:2289:3389
```

****
**6. 单机模式、伪集群模式、集群模式**
1. 单机模式只需要配置tickTime、dataDir、clientPort就行了,如果配置多了,有可能被认为是集群模式
2. 伪集群模式跟集群模式只是一个服务器跟多台服务器的区别
3. 集群基本配置
1. 配置2个容忍时间
2. 配置集群列表
3. 在dataDir目录下创建
```
cd /usr/local/zookeeper/zookeeper-01/data
vi myid
#在文件中写入配置文件中该服务器的No数字
```
4. 伪集群配置
1. 因为ip是同一个,所以3个端口号都不能一样

转载于:https://www.cnblogs.com/season1992/p/10062209.html

你可能感兴趣的文章
js self = this的解释
查看>>
用jekyll制作高大上的网站(一)——安装与配置
查看>>
linux基础--vim编辑器
查看>>
前端网络、JavaScript优化以及开发小技巧
查看>>
nbd网络块设备使用教程
查看>>
gbk与utf-8字符串无乱码截取
查看>>
Linux学习之CentOS(三)--初识linux的文件系统以及用户组等概念
查看>>
linux下varnish4安装
查看>>
聊聊php定时计划任务
查看>>
python系统编码-稍后更新
查看>>
lvs-nat,https
查看>>
旧电脑如何华丽变身专业上网行为管理设备!
查看>>
移动互联网初创型团队需要什么样的云计算服务?
查看>>
DRBD的安装配置
查看>>
理解卷积神经网络的利器:9篇重要的深度学习论文(上)
查看>>
zabbix 批量部署机器,并discovery机器,并挂在模板
查看>>
前端过滤关键字
查看>>
Linux基础命令之SS
查看>>
git安装和使用案例
查看>>
Docker 快速入门之 Dockerfile
查看>>