ZooKeeper--分布式服务框架

1、ZooKeeper简介

ZooKeeper 是一个为分布式应用所设计的分布的、开源的协调服务。分布式的应用可以建立在同步、配置管理、分组和命名等服务的更高级别的实现的基础之上。 ZooKeeper 意欲设计一个易于编程的环境,它的文件系统使用我们所熟悉的目录树结构。 ZooKeeper 使用 Java 所编写,但是支持 Java  C 两种编程语言。

众所周知,协调服务非常容易出错,但是却很难恢复正常,例如,协调服务很容易处于竞态以至于出现死锁。我们设计 ZooKeeper 的目的是为了减轻分布式应用程序所承担的协调任务。

2、ZooKeeper数据模型、命名空间以及节点的概念

ZooKeeper数据模型和层次命名空间。

提供的命名空间与标准的文件系统非常相似。一个名称是由通过斜线分隔开的路径名序列所组成的。ZooKeeper中的每一个节点是都通过路径来识别。

 

ZooKeeper中节点和临时节点

ZooKeeper的节点(znode)是通过像树一样的结构来进行维护的,并且每一个节点通过路径来标示以及访问。ZooKeeper的节点既可以被看做是一个文件,又可以被看做是一个目录,它同时具有二者的特点。

Znode还具有原子性操作的特点:命名空间中,每一个Znode的数据将被原子地读写。读操作将读取与Znode相关的所有数据,写操作将替换掉所有的数据。除此之外,每一个节点都有一个访问控制列表,这个访问控制列表规定了用户操作的权限。

ZooKeeper中同样存在临时节点。这些节点与session同时存在,当session生命周期结束,这些临时节点也将被删除。临时节点在某些场合也发挥着非常重要的作用。

3、ZooKeeper的安装

ZooKeeper的安装模式分为三种,分别为:单机模式(stand-alone)、集群模式和集群伪分布模式。

5.Zookeeper是保证数据在zk集群中传递时事务一致性的。

5.1 zookeeper是含有一个文件系统,类似于linux的文件系统。每一级目录结果都可以写数据。

 

6 搭建zk的集群

6.1 zk的集群要求至少3个节点(分别是hadoop0、hadoop1、hadoop2),且是奇数个,且节点之间的时间要同步。

6.2 在hadoop0上对zookeeper.tar.gz进行解压缩、重命名、设置环境变量。

tar -zxvf zookeeper-3.4.5.tar.gz

mv zookeeper-3.4.5 zookeeper

 

vi /etc/profile

export ZOOKEEPER_HOME=/usr/local/zookeeper

export PATH=.:$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$ZOOKEEPER_HOME/bin

 

 

6.3 在hadoop0上进入zookeeper的conf目录

    mv   zoo_sample.cfg   zoo.cfg

5.4 在hadoop0上编辑文件zoo.cfg,

    修改dataDir=/usr/local/zookeeper/data

    新增以下三行

           server.0=hadoop0:2888:3888        

server.1=hadoop1:2888:3888

server.2=hadoop2:2888:3888

5.5 在hadoop0上创建文件夹,执行命令mkdir -p /usr/local/zookeeper/data        

5.6 在hadoop0的data目录下,创建文件myid,文件内容是0

5.7 把hadoop0上的zookeeper文件夹和/etc/profile复制到hadoop1、hadoop2节点。

scp -r        /usr/local/zookeeper                        hadoop1:/usr/local

scp -r        /usr/local/zookeeper                        hadoop2:/usr/local

 

scp -r        /etc/profile                        hadoop1:/etc/profile

scp -r        /etc/profile                        hadoop2:/etc/profile

5.8 在hadoop1上执行source /etc/profile,修改myid的值为1

    在hadoop2上执行source /etc/profile,修改myid的值为2

5.9 ******************三个节点分别执行命令zkServer.sh start*******************

zkServer.sh status   查看zookeeper的状态

5.10 验证:在各个节点分别执行jps,发现多一个java进程是QuorumPeerMain

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值