hadoop生态之zookeeper安装配置(一)

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

Zookeeper架构图:

Zookeeper特点:

  • 顺序一致性:从同一客户端发起的事务请求,最终将会严格地按照顺序被应用到 ZooKeeper 中去。
  • 原子性:所有事务请求的处理结果在整个集群中所有机器上的应用情况是一致的,也就是说,要么整个集群中所有的机器都成功应用了某一个事务,要么都没有应用。
  • 单一系统映像:无论客户端连到哪一个 ZooKeeper 服务器上,其看到的服务端数据模型都是一致的。
  • 可靠性:一旦一次更改请求被应用,更改的结果就会被持久化,直到被下一次更改覆盖。

Zookeeper应用场景:
    统一命名服务
    分布式配置管理
    分布式消息队列
    分布式锁
    分布式协调服务

Zookeeper集群角色:
    server leader 领导者
    server follower 追随者
    Observer 观察者

ZooKeeper的基本运转流程:
    1、选举Leader(集群搭建最好是:2n + 1奇数台服务器,便于leader选举)
    2、同步数据。
    3、选举Leader过程中算法有很多,但要达到的选举标准是一致的。
    4、Leader要具有最高的执行ID,类似root权限。
    5、集群中大多数的机器得到响应并接受选出的Leader。

Zookeeper工作原理:

Zookeeper的核心是原子广播,这个机制保证了各个server之间的同步。实现这个机制的协议叫做Zab协议。Zab协议有两种模式,它们分别是恢复模式和广播模式。当服务启动或者再领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,且大多数server的完成了和leader的状态同步以后,恢复模式就结束了。状态同步保证了leader和server具体有相同的系统状态。

一旦leader已经和多数的follower进行了状态同步后,他就可以开始广播消息了,即进入广播状态。这时候当一个server加入zookeeper服务中,它会在恢复模式下启动,发现leader,并和leader进行状态同步。待到同步结束,它也参与消息广播。zookeeper服务一直维持在Broadcast状态,直到leader崩溃了或者leader失去了大部分的followers的支持。

广播模式需要保证proposal被按顺序处理,因此zk采用了递增的事务id号(zxid)来保证。所有的提议proposal都在被提出的时候加上了zxid。实现中zxid是一个64位的数字,它搞32位是epoch用来标识leader关系是否改变,每一次一个leader被选出来,它都会有一个新的epoch。低32位是个递增计数。

当leader崩溃或者leader失去大多数的follower,这时候zk进入恢复模式,恢复模式需要重新选举出一个新的leader,让所有的server都恢复到一个正确的状态。

Zookeeper安装配置:

1.下载zookeeper安装包,选择需要的版本zookeeper-3.4.9.tar.gz,链接地址:http://archive.apache.org/dist/zookeeper

2.把安装包上传到Centos服务器的指定的目录,例如:/opt/mysoft/目录

3.解压zookeeper-3.4.9.tar.gz 并且重命名

   tar -zxvf zookeeper-3.4.9.tar.gz  

   rm zookeeper-3.4.9 zookeeper

4.配置环境变量:/etc/profile

   命令:vi /etc/profile

    添加如下内容:

    export ZOOKEEPER=/opt/mysoft/zookeeper

    export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER/bin:$PATH

    使配置文件生效:source /etc/profile

5.配置zookeeper

创建每台 zookeeper的myid

 cd /opt/mysoft/zookeeper

 mkdir data(用来存放数据,下面配置文件引用)

 mkdir logs   (用来存放日志,下面配置文件引用)

 cd data

  vi myid

  第一台服务器输入 1,第二台服务器输入 2 以此类推……(myid文件中的编号每台唯一

  wq!保存文件 

配置zoo.cfg文件 

    cd /opt/zookeeper/conf

    mv zoo_sample.cfg zoo.cfg

    vi zoo.cfg 

    添加数据和日志目录及服务器ip配置信息:

    

将配置好的zookeeper复制到集群服务器上:

    命令:scp -r /opt/mysoft/zookeeper 主机名2:/opt/mysoft

               scp -r /opt/mysoft/zookeeper 主机名3:/opt/mysoft

    登录到主机名2的服务器,修改主机名2的myid:

    vi /opt/mysoft/zookeeper/data/myid

    1修改为2

    登录到主机名3的服务器,修改主机名3的myid

    vi /opt/mysoft/zookeeper/data/myid

    1修改为3

拷贝主机名1上面的profile文件到主机名2和主机名三服务器上:

    scp /etc/profile 主机名2:/etc/

    scp /etc/profile 主机名3:/etc/

    登录主机名2使配置文件生效:source /etc/profile

    登录主机名3使配置文件生效:source /etc/profile

验证zookeeper是否配置成功:

    分别登录每一台机器执行命令:zkServer.sh start

    然后执行:zkServer.sh status 后,若有一个leader 其它为follower则表明zookeeper集群安装和配置成功。

    关闭zookeeper:

        依次登陆每台服务器,临时关闭zookeeper服务

        zkServer.sh stop

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ansap

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值