一旦工作,那就要努力的干,聪明的干,快速的干——用省下来的时间干自己喜欢干的事情。!

zookeeper部署

hadoop lampnick 2308℃ 0评论
zookeeper:zk
    保证高可靠、高可用的协同服务
    集中式服务,用于配置信息,名称服务,分布式同步处理
ZK组件
1.Client
    向Server周期性发送信息,表明自己还活着,Server向Client回应确认消息。
    Client没有收到响应,自动重定向消息到其他的Server
2.Server
    一个ZK节点,向Client提供所有服务,通知Client,Server是Alive的。
3.Ensemble
    全体,一组ZK节点,需要最小值为3
4.Leader
    领袖,特殊的ZK节点,ZK集群启动时,推选Leader
5.Follower
    随从,听命于Leader的指令
    ZK的namespace等级结构
    1.驻留在内存的
    2.树上的每个节点都是Znode
    3.每个Znode都有name,而且用/分割
    4.每个Znode存放的数据不能超过1M
    5.每个节点都有Stat对象
        a.Version:与之关联的数据发生改变时,版本增加。
        b.ACL:Action Control List
        c.Timestamp
        d.Datalength

ZK Znode节点类型
    1.持久节点
    2.临时节点
    3.顺序节点

ZK安装
    1.下载ZK
    2.安装JDK
    3.tar开
    4.配置环境变量
        ZOOKEEPER_HOME=
        PATH=..

部署ZK
1.单机版
    a.创建配置conf/zoo.cfg配置
    tickTime=2000
    dataDir=/path/to/zookeeper/data
    clientPort=2181
    initLimit=5
    syncLimit=2
    b.启动zkServer
    $>bin/zkServer.sh start
    c.启动zkClient
    $>zkCli.sh
2.完全分布式
    a.确定主机
        s101
        s102
        s103
    b.配置${datadir}/myid文件
        101
    c.配置zoo.cfg,默认的配置文件
        ...
        server.101=192.168.88.101:2888:3888
        server.102=192.168.88.102:2888:3888
        server.103=192.168.88.103:2888:3888
        ...

配置ZK
1.配置文件
    [conf/zoo_sample.conf]
    #每次心跳的毫秒数
    tickTime=2000
    #开始同步阶段的心跳数
    initLimit=10
    #发送请求和得到确认之间可以传递的心跳个数。
    syncLimit=5
    #存放ZK的快照目录,不要存在/tmp下
    dataDir=/tmp/zookeeper
    客户端连接的端口
    clientPort=2181
 
通过ZK的API访问ZK集群
...

leader选举过程
    1.所有节点在相同的path下创建各自的临时序列化节点
    每个ZK都有自己对应的ZNODE
    2.拥有最小编号的ZK是Leader,其他的ZK是Follower
    3.每个Follower观察仅比自己小的那个node
    008->007,   007->006,...
    4.如果Leader下线了,则他对应的节点会删除。
    5.观察者会发现Leader被删除了。
    6.观察者查找是否还有最小的节点,如果有,最小值节点成为Leader,否则,观察者了Leader。

转载请注明:MitNick » zookeeper部署

喜欢 (1)or分享 (0)
头像
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址