zookeeper学习小结


zookeeper简单介绍

C一致性A可用性P分区容忍性|三者不可兼得

1保证最终一致性,区别实时一致性

2 可靠性,一台接收,所有接收

3 原子性, 没有中间状态,只能成功或者失败

4 顺序性, 所有server同一消息发布顺序一致


工作原理

1.server在内存中存储了一份数据

2.启动时,自己选举出一个leader(Paxos算法)

3.leader负责处理数据更新等操作

4.更新成功是大多数的更新成功


Paxos算法比较经典的理解就是小岛上议员和屁民的故事,大家可以搜一下。

小岛------ZK Server Cluster

议员------ZK Server

提议------ZNode Change

提议编号---Zxid

正式法令---所有ZNode及其数据

总统---ZK Server Leader

zookeeper采用递增的事务id号zxid来标识事务。proposal都在被提出的时候加上了zxid

zxid是64位的数字,高32位是epoch标识leader关系是否改变,低32位用于递增计数


server的工作状态

1 LOOKING 当前server不知道leader是谁

2LEADING

3FOLLOWING


zookeeper安装

而且在centos上面修改hosts文件重启后,主机名会自动改变,此系统默认应该首先使用本机的真实ip作为主机名

1hosts文件解析

   192.168.174.155   slave-01  
   192.168.174.156   slave-02  
   192.168.174.157   slave-03 


2修改配置文件,主机的hostname要对应hosts文件中的内容

zoo.cfg

   tickTime=2000  
   dataDir=/home/hadoop/storage/zookeeper  
   clientPort=2181  
   initLimit=5  
   syncLimit=2  
   server.1=slave-01:2888:3888  
   server.2=slave-02:2888:3888  
   server.3=slave-03:2888:3888 


3远程分发到各个子节点处,用scp命令

4设置myid

在我们配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中X为什么数字,则myid文件中就输入这个数字。

 echo "1" > datadir/myid

 echo "2" > datadir/myid

 echo "3" > datadir/myid

这里的数字要对应server.后面的数字,对应不同的主机

5启动和查看,而且在启动前需要关闭防火墙

zkServer.sh start启动

zkServer.sh status 状态查看

tail -500f zookeeper.out查看一下启动日志

zookeeper的启动需要一段的时间进行leader的选举,所以可能不会立即的响应

6说明

配置文件中的第一端口是leader和follow交流,第二个端口是选举端口

oberserver,在某一个server的第二端口后面加上关键字,用户扩展,不参与投票

bin/skCli.sh进入交互式模式,里面是可以查看hbase的数据的。

 Znode有两种类型,短暂ephemeral和持久persistentephemeral_sequential ephemeral_sequential

类型在创建时确定并且之后不能再修改

 短暂的会在会话结束后删除

 持久的不依赖于客户端会话

Watcher监控目录节点的数据变化以及子目录的变化




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值