失效链接处理 |
Zookeeper笔记 PDF 下载
本站整理下载:
相关截图:
主要内容:
什么是Zookeeper:
一个为分布式应用提供一致性服务的软件,提供配置服务、域名服务、分布式同步、组服务等。负责各个组件之间的协调服务:Hadoop高可用(HA)
Zookeeper安装:
要求:1)JDK安装(Java编写);2)关闭防火墙;3)需要每个节点都安装 正常生产中7-11个,一定是奇数台
安装步骤:
1)上传压缩包;
2)解压安装;
3)修改配置文件(zoo_sample.cfg配置文件模版,复制zoo.cfg文件)
tickTime=2000 //每次心跳的时间间隔
initLimit=10 //初始化过程中的心跳个数
syncLimit=5 //请求和响应之间的心跳次数
dataDir=/home/Hadoop/Zookeeper/data //数据存储目录
clientPort=2181 //客户端通信端口
末尾添加集群信息 Zookeeper集群有几台机器就写几条 一行代表一个节点
server.1=Node1:2888:3888
server.2=Node2:2888:3888
server.3=Node3:2888:3888
注意:不要有空格 空行
server:固定写法
1:每台节点的id 这里可以随意 但不要重复 这个id存储在数据目录中
Node1:通信的主机名
2888 3888 内部通信端口
4)添加每个节点的id 在dataDir=/home/Hadoop/Zookeeper/data这个目录下创建文件 名字myid
文件中的内容就是你的配置id
Node1/Node2/Node3:
1/2/3
这里的myid的内容和server.id保持一致
PS:一定注意,这个文件不能有空格和空行
注:没有启动顺序:
同时启动 过半以下的id不可能成为leader
同一个集群serverid不可以重复,集群最多安装255个节点,一般七个起步
5)配置环境变量 每个节点均配置
6)发送到其它节点
sudo scp /etc/profile Node1:/etc/
source /etc/profile
7)启动zkserver.sh start / 关闭 zkserver.sh stop
每个节点都需要单独启动
43610 QuorumPeerMain不代表启动成功 需要检测一下Zookeeper状态
zkserver.sh status查看是否成功(Mode:Leader/Follow)
Zookeeper的架构 主从架构 一主多从(选举主:节点单数个原因)
Zookeeper的来源
分布式的产生,----分布式数据一致性问题 分布式节点越多越难达到一致性
Zookeeper产生目的就是解决分布式数据一致性
1)Hadoop安装的时候namenode存在单点故障问题 高可用HA
namenode可配置多个 只有一个active 剩下的standby
standby无缝连接 必须实时和active元数据保持一致
如何保持一致?拷贝--standby定期到active拷贝(不现实,数据延迟)
第三方平台解决数据同步问题 Zookeeper
CAP理论:一个分布式系统不可能同时满足C,A,P三个需求
C:Consistency,一致性:多个副本保持一致=>强一致性
A:Availability,可用性:系统提供的服务必须一直处于可用,对于用户的每一个操作请求总是能在有限时间内返回结果
P:Partition Tolerance分区容错性:分布式系统在遇到任何网络分区故障时,仍然需要能够保证对外提供满足一致性和可用性的服务
一致性:强一致性(实时)、弱一致性(有延迟)、最终一致性(一定时间内)
BASE理论:
BA:Basically Available基本可用
相应时间的损失,功能上的损失
S:Soft state软状态
允许存在不同节点同步数据时出现延迟,且出现数据同步延迟时存在的中间状态也不会影响系统整体性能
E:Eventually consistent最终一致性
系统中所有的数据副本,在经过一段时间后,都可以达到同步
Paxos--BASE理论实现:希腊选举---Zookeeper最完美实现
Zookeeper的shell
Zookeeper的客户端:
zkCli.sh进入客户端的脚本
在任意一个Zookeeper节点执行都可以进入客户端
help 查看所有Zookeeper命令
1.ls path [watch]-- 查看某个目录包含的所有文件
2.ls2 path-- 查看某个目录包含的所有文件,与ls不同的是能看到time、version等信息
3.create path data acl-- 创建znode,并设置初始内容
4.get path [watch]-- 获取znode的数据
5.set path-- 修改znode内容
6.delete path-- 删除znode,没有子节点的节点
7.rmr path-- 删除znode,可以删除具有子节点的节点
8.history-- 查看历史执行命令 只显示近10条
9.stat path-- 查看当前znode信息
znode状态信息与含义
czxid 创建znode的zxid
|