ZooKeeper
1
安装
Standalone 安装
/zk/
/zk/conf/zoo.conf
Replicated 安装(Fast Paxos 算法:必须是奇数节点)
/zk/
/zk/cluster/localhost_2888_3888/conf/zoo.conf
/zk/cluster/localhost_2889_3889/conf/zoo.conf
/zk/cluster/localhost_2890_3890/conf/zoo.conf
PS: 生产节点必须安装在不同机器上.
2
配置
conf/zoo.cfg
tickTime=2000 # 时间片
dataDir=/var/lib/zookeeper # 每个节点使用不同路径, 保存myid文件.
clientPort=2181 # 每个节点使用不同路径
dataLogDir=
initLimit=5 # 连接Leader时间, 5个时间片=10000ms.
syncLimit=2 # 同步Leader时间
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890
288x: 节点数据同步端口
388x: 选举端口
3
启动
bin/zkServer.sh start
4
使用
bin/zkCli.sh -server localhost:2181
5.
API
help 命令查看命令行指令集
6.
znode 模型
使用Unix文件系统路径来命名znode, znode名称中禁止使用.或..来标识命名.
znode可以存储数据,数据内置变更版本号,时间戳,ACL信息. 当多个客户端更新数据时使用变更版本号与服务器数据的变更版本号匹配的客户端更新才会成功, 相当于乐观锁.这个行为可以定制.
znode 支持变更通知客户端, 使用watch机制.
znode 读写是原子的, 基于原子广播协议.只能写主,读任意.
znode 不支持大数据量存储,因为基于内存数据库.一个znode大小限制为1M.
Ephemeral Nodes 临时节点, 会话结束后删除. 不能有子节点.
PERSISTENT 持久化节点.
PERSISTENT_SEQUENTIAL 持久化顺序节点
Sequence Nodes 顺序节点, 内置int计数器: -2147483647-2147483647.
Container Nodes 新节点, 容器节点, 当最后一个子节点删除时解决容器节点自动删除.当添加子节点时,需要捕获NoNodeException并重建容器节点.
TTL Nodes 只能持久化节点, 当客户端超过TTL没有访问节点,节点会自动删除.
7
节点内置统计信息
Zxid ZooKeeper 事务ID, 基于时间顺序, 全局惟一.
czxid 创建事务ID
mzxid 修改事务ID
pzxid 子节点修改事务ID
Version numbers 有三种:
version znode变更版本号
cversion znode子节点变更版本号
aversion znode ACL变更版本号
ctime 创建时间
mtime 修改时间
ephemeralOwner znode 属主的会话ID(64位数字), 非临时节点值为0.
dataLength 数据长度
numChildren 子节点数量
8
会话ID
会话状态
START
CONNECTING
CONNECTED
CLOSED
END
9
Watch znode监听机制
数据监听
子节点监听
watch是一次性的,想要持续监听时需要重新添加watch.
watch是异步的, zk只保证watch事件发生的时序.
watch event不一定都会触发. 当ZK崩溃时,你有可能收不到watch event,或者ZK重连时, 会话已经失效. 需要用户保证业务的连续性.
10
ACL 权限:
CREATE
READ
WRITE
DELETE
ADMIN
认证协议:
world 基于ID
auth scheme:expression:perms
digest username:password(BASE64+SHA1)
ip IP地址
x509 X500指纹
定制ZK认证:
AuthenticationProvider
public interface AuthenticationProvider {
String getScheme();
KeeperException.Code handleAuthentication(ServerCnxn cnxn, byte authData[]);
boolean isValid(String id);
boolean matches(String id, String aclExpr);
boolean isAuthenticated();
}
分享到:
相关推荐
zookeeper安装与配置
zookeeper安装与配置
zookeeper安装与配置
任务二 编辑Zookeeper配置文件;任务三 创建zkdata和zkdatalog文件夹;任务四 设置Zookeeper节点对应的ID(myid);任务五 配置Zookeeper环境变量;任务六 分发Zookeeper到其他Zookeeper节点;任务七 修改其他Zookeeper...
### 单机模式安装与配置 Zookeeper 的单机模式安装非常简单,主要涉及以下步骤: 1. **下载**:首先从官方网站或其他可信源下载 Zookeeper 的安装包。 2. **解压**:将下载的安装包解压到合适的目录。 3. **配置**...
**大数据技术基础实验报告——Zookeeper的安装配置与应用实践** Apache ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步...
在本文中,我们将深入探讨 Zookeeper 的安装与配置过程。 首先,安装 Zookeeper 需要下载最新稳定版的二进制包,可以从 Apache 官方网站(http://zookeeper.apache.org/releases.html)获取。解压下载的压缩包,...
### ZooKeeper安装与配置详解 #### 一、Zookeeper的三种搭建方式 ##### 1. 单机模式 - **定义**: Zookeeper仅在一台服务器上运行,适用于开发和测试环境。 - **特点**: 不具备容错能力,主要用于快速原型开发和...
ZooKeeper 集群安装配置 ZooKeeper 是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护...
4.1. 下载与安装ZooKeeper ZooKeeper的最新版本可以在其官方网站http://hadoop.apache.org/zookeeper/上找到。为了与Hadoop环境兼容,需要选择合适的版本。安装前,请关闭所有节点的防火墙,以免出现连接问题。例如...
#### Zookeeper 安装与配置 Zookeeper 是一款开源的分布式协调服务系统,主要用于解决分布式应用中的常见问题,例如:命名服务、状态同步服务、集群管理等。在进行HBase部署之前,首先需要正确安装和配置好...
**二、Zookeeper安装与配置** 1. **安装包上传与解压**:首先将 Zookeeper 的安装包上传到服务器,并在合适的位置解压缩。 2. **配置文件复制**:进入 Zookeeper 的 `conf` 目录,复制默认的配置文件 `zoo_sample....
### Zookeeper与Redis安装配置详解 #### 一、Zookeeper 安装与配置 **1.1 下载与解压** - **版本选择**: 本教程使用的Zookeeper版本为3.4.6。 - **下载地址**: 访问[Apache Zookeeper官方网站]...
* CentOS 8 安装 ZooKeeper 3.8.0 需要下载安装包、上传安装包并解压、编辑配置文件、配置环境变量、启动 ZooKeeper 服务端和客户端、查看状态等步骤。 * ZooKeeper 集群需要配置集群、创建 `myid` 文件、修改服务器...
【CentOS7安装与配置Zookeeper】是针对Linux系统中常用的服务发现和分布式协调框架Zookeeper进行的基础操作。Zookeeper是Apache Hadoop项目的一部分,它为分布式应用提供了一个高效、可靠的分布式协调服务。 首先,...
ZooKeeper是一个重要的分布式应用程序协调服务,源自Apache项目,它为分布式系统提供了高可用和一致性的解决方案。...因此,理解和掌握ZooKeeper的安装和配置对于从事分布式系统开发的工程师来说至关重要。
ZooKeeper 安装配置 ZooKeeper 是一个广泛使用的分布式应用程序协调服务,它提供了一个可靠的、可扩展的、可配置的分布式系统。下面是 ZooKeeper 安装配置的详细步骤和知识点: 下载和解压 ZooKeeper 安装包 在...