IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 12 Zookeeper介绍、安装、shell cli 使用,基本概念验证 -> 正文阅读

[大数据]12 Zookeeper介绍、安装、shell cli 使用,基本概念验证

ZooKeeper简介

官网:https://zookeeper.apache.org/doc/r3.5.9/zookeeperOver.html

ZooKeeper 是分布式应用程序的分布式开源协调服务。

分布式应用程序可以基于这些原语来实现更高级别的同步、配置维护以及组和命名服务。它被设计为易于编程,并使用以熟悉的文件系统目录树结构为样式的数据模型。

众所周知,协调服务很难做好。它们特别容易出现诸如竞争条件和死锁之类的错误。ZooKeeper 背后的动机是减轻分布式应用程序从头开始实现协调服务的责任。

zookeeper集群两种状态,可用状态、不可用状态。不可用状态可以快速选举出leader恢复成可用状态,官方压测200ms左右。
在这里插入图片描述
zookeeper是一个目录树结构,node节点可以存1M数据。节点包括:持久节点、临时节点、序列节点(持久、临时)。临时节点依托session,session结束,临时节点立即消失。
在这里插入图片描述
在这里插入图片描述


安装、配置、启动

安装

# 下载
$ wget https://downloads.apache.org/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz

# 解压缩
$ tar -xf apache-zookeeper-3.5.9-bin.tar.gz

# 存放快照的目录
$ mkdir zk

配置

修改配置文件

# 心跳时间
tickTime=2000

# 初始延迟心跳数(时间 = tickTime * initLimit)
initLimit=10

# 请求得到响应的允许心跳数(时间 = tickTime * syncLimit)
syncLimit=5

# 存放快照的目录
dataDir=/home/zk

# 客户端连接zk的端口号
clientPort=2181

# 最大连接数
# maxClientCnxns=60

# 集群配置
# 服务器编号1234 是用来选leader的
# 3888	在第一次启动或者leader挂掉后,用这个端口号建立socket连接进行通信,选举leader
# 2888	在有leader后,其它follower通过这个端口号建立socket连接,和leader进行通信,后续创建节点等操作是通过这个端口去通信的
server.1=192.168.174.62:2888:3888
server.2=192.168.174.63:2888:3888
server.3=192.168.174.64:2888:3888
server.4=192.168.174.65:2888:3888

配置文件远程拷贝到其它三个节点

$ scp zoo.cfg root@192.168.174.63:`pwd`

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建myid

$ cd /home/zk
$ vim myid
# myid文件存端口号,与配置一致

在这里插入图片描述

myid所在目录远程拷贝到其它三个节点

$ scp -r ./zk/ root@192.168.174.65:`pwd`

在这里插入图片描述

修改其它3个节点的myid

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改环境变量

# 打开环境变量配置文件
$ vim /etc/profile

# 配置文件中增加
ZOOKEEPER_HOME=/home/apache-zookeeper-3.5.9-bin
JAVA_HOME=/home/jdk1.8.0_291
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$ZOOKEEPER_HOME/bin:$JAVA_HOME/bin
export ZOOKEEPER_HOME JAVA_HOME CLASS_PATH PATH

# 修改的环境变量立刻生效
$ source /etc/profile

开放端口

# 检查端口,命令
$ firewall-cmd --zone=public --query-port=2181/tcp
$ firewall-cmd --zone=public --query-port=2888/tcp
$ firewall-cmd --zone=public --query-port=3888/tcp

# 开放端口
$ firewall-cmd --zone=public --add-port=2181/tcp --permanent
$ firewall-cmd --zone=public --add-port=2888/tcp --permanent
$ firewall-cmd --zone=public --add-port=3888/tcp --permanent

# 设置生效
$ firewall-cmd --reload

启动

在这里插入图片描述

$ zkServer.sh start-foreground	# 前台启动
$ zkServer.sh start	# 后台启动
$ zkServer.sh status	# 状态

在这里插入图片描述
在这里插入图片描述


客户端命令

客户端连接ZooKeeper

$ zkCli.sh
$ zkServer.sh -server 192.168.174.62:2181

帮助命令

> help
ZooKeeper -server host:port cmd args
	addauth scheme auth
	close 
	config [-c] [-w] [-s]
	connect host:port
	create [-s] [-e] [-c] [-t ttl] path [data] [acl]
	delete [-v version] path
	deleteall path
	delquota [-n|-b] path
	get [-s] [-w] path
	getAcl [-s] path
	history 
	listquota path
	ls [-s] [-w] [-R] path
	ls2 path [watch]
	printwatches on|off
	quit 
	reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]
	redo cmdno
	removewatches path [-c|-d|-a] [-l]
	rmr path
	set [-s] [-v version] path data
	setAcl [-s] [-v version] [-R] path acl
	setquota -n|-b val path
	stat [-w] path
	sync path

关闭连接

> close

在这里插入图片描述

创建连接

> connect 192.168.174.62:2181

在这里插入图片描述

退出客户端

> quit

在这里插入图片描述

查看历史命令

> history

在这里插入图片描述

查询节点

# ls [-s] [-w] [-R] path

> ls /
> ls -w /
> ls -s /
> ls -R /

# 查询子节点
> ls /zookeeper/config
> ls -w /zookeeper/config
> ls -s /zookeeper/config
> ls -R /zookeeper/config

在这里插入图片描述

查询节点详情

# stat [-w] path

> ls -s /
> stat /
> stat -w /

在这里插入图片描述

查询节点值

# get [-s] [-w] path

> get /zookeeper/config		# 查询节点值
> get -w /zookeeper/config		# 查询节点值,同上
> get -s /zookeeper/config		# 查询节点值、节点详情

在这里插入图片描述
节点信息解释

[zk: localhost:2181(CONNECTED) 49] get -s /test1
# 节点值
hello test1 u v5 to v6		
# 创建节点,事务id,c创建
# 64位,前32位“0x2” leader纪元;后32位“00000053”,事务序号 
# 在2纪元,创建节点,事务序号53
cZxid = 0x200000053
# 创建时间
ctime = Wed Jul 28 10:30:09 CST 2021
# 修改节点,事务id,m修改
# 在5纪元,修改节点,事务序号12
mZxid = 0x500000012
# 修改时间
mtime = Wed Jul 28 11:34:52 CST 2021
pZxid = 0x200000053
cversion = 0
# 数据版本
dataVersion = 6
aclVersion = 0
ephemeralOwner = 0x0
# 数据长度
dataLength = 22
numChildren = 0
[zk: localhost:2181(CONNECTED) 50] 

创建节点

# create [-s] [-e] [-c] [-t ttl] path [data] [acl]

# 创建节点
> create /test	
# 创建节点,给节点赋值
> create /test2 "This is test2 node"	
# 创建节点,给节点赋值,给节点设置权限
> create /test3 "This is test3 node" world:anyone:cdwra	

持久节点 [-c] (默认)

> create -c /test3/hello "this is hello node"

在这里插入图片描述
临时节点 [-e]

> create -e /test3/temp "This is temp node"

在这里插入图片描述
序列化节点 [-s]

> create -s /test3/s	# 创建序列化、持久节点,以s开头
> create -s /test3/		# 创建序列化、持久节点,不指定开头
> create -s -e /test3/temp	# 创建序列化、临时节点,以temp开头

在这里插入图片描述

修改节点值

# set [-s] [-v version] path data

> set /test1 "hello test1"
> set -v 5 /test1 "hello test1 u v5 to v6"

在这里插入图片描述

删除节点

# delete [-v version] path
# deleteall path

> delete /test3/s0000000013		# 删除节点,无子节点
> delete -v 0 /test3/s0000000014	# 删除节点,通过版本号,无子节点
> deleteall /test3		# 全部删除,节点、子节点都删除

在这里插入图片描述


上一篇《11 Redis开发:spring.data.redis、连接、序列化、high/low api》
下一篇 《13 Zookeeper原理知识,paxos、zab、角色功能、API开发基础》

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-29 11:43:03  更:2021-07-29 11:44:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 7:36:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码