您的位置:首页 > 其它

二、分布式服务框架Zookeeper学习笔记

2016-07-12 20:50 411 查看

二、分布式服务框架Zookeeper学习笔记

标签(空格分隔): 高级Hadoop2.x

2.分布式服务框架Zookeeper

网址:zookeeper.apache.prg

2.1 zookeeper框架架构与功能介绍

What?

开源式分布,避免协作冲突

架构图

最少节点数3台,节点数必须为奇数,三台允许1台坏,5台允许2台坏

2n+1 , n:表示集群中允许损坏的机器数目

启动时会选一个leader server, others are follower

客户端可以连接任何一个机器server

所有机器时间必须一致

数据结构:树状

角色:

leader:负责投票的发起和决议,更新系统状态

follower:接受客户请求并向客户端返回结果,参与投票

client:请求发起方

应用场景:

观察者模式设计的分布式服务管理框架,负责存储和管理大家关心的数据,监控数据的变化,一旦监控到就会通知注册的观察者做出反应。

2.2单机模式安装,基本命令

2.2.1单机模式安装

2.2.1.1安装JDK

2.2.1.2安装zookeeper

1)下载zookeeper压缩包到opt/softwares/目录下

下载地址:http://apache.dataguru.cn/zookeeper/

2)执行权限修改

$chmod u+x zookeeper-3.4.5.tar.gz


3)解压安装压缩包到/opt/modules目录下

$tar -zxf zookeeper-3.4.5.tart.gz -C /opt/modules


2.2.1.3修改配置文件(在notepad中进行)

到目录opt/modules/zookeeper.3.4.5/conf/

a.先将文件zoo_sample.cfg重命名为zoo.cfg

b.再命令行创建一个目录

$mkdir -p data/zkData


c.修改配置文件里的dataDir目录为以上创建的目录

dataDir=/opt/modules/zookeeper-3.4.5/data/zkData



2.2.1.4启动

$bin/zkServer.sh start


jps后可以看到启动了QuorumPeerMain



2.2.2基本命令

可以进去看看目录结构

$bin/zkCli.sh


查看根目录,有一个[zookeeper]

ls /




1)每一个目录叫znode,每个znode上都可以赋值数据,若要得到数据(如zookeeper节点上的数据),则可以

$get /zookeeper




2)创建一个znode:

$create /test "123"  //(123为test目录中的数据)
$get /test   //可以查看该节点的数据


3)删除znode

$rmr /test


4)退出znode

$quit




2.2.3 标准的链接服务器方法:指定链接哪个server

1)

$bin.zkCli.sh -server 主机名


2)链接到其他机器,先分发已经配置好的zookeeper到其他机器

$scp -r zookeeper-3.4.5/ beifeng@02主机名:opt/modules /


(用户名beifeng相同的话,可以省去beifeng@)

如此便可在02机器上启动01机器上的zookeeper客户端:

$bin.zkCli.sh -server hadoop-senior01.ibeifeng.com


(zk端口号2181)



2.3zookeeper分布式集群安装配置部署启动和配置参数

2.3.1分布式安装:

先关闭所有节点,包括QuorumPeeServer

$bin/zkSerer.sh stop


2.3.1.1解压zookeeper安装包到/opt/app/目录下

$tar -zxf /opt/soaftwares/zookeeper-3.4.5.tart.gz -C /opt/app


2.3.1.2 配置

到目录opt/modules/zookeeper.3.4.5/conf/

a.先将文件zoo_sample.cfg重命名为zoo.cfg

b.再命令行创建一个目录

$mkdir -p data/zkData


c.修改配置文件里的dataDir目录为以上创建的目录

dataDir=/opt/app/zookeeper-3.4.5/data/zkData

d.initLimit=5 客户端初始化时间

e.syneLimit=2

f.添加以下内容

server.1=主机名01:2888:3888

server.2=主机名02:2888:3888

server.3=主机名03:2888:3888

2.3.1.3各机器存储目录下建myid文件,并编辑标号

1)创建文件zkdata/myid

$touch myid


2)vi data/myid

3)添加编号:1

192.168.194.110:1

192.168.194.111:2

192.168.194.112:2

2.3.1.4分发到三台机器

$scp -r zookeeper-3.4.5.jar hadoop-senior02.ibeifeng.com:/opt/app/


分发完之后记得改myid上的编号

2.3.1.5启动每台机器

$bin/zkServer.sh start


查看状态

$bin/zkServer.sh status


2.3.2 分布式参数讲解

ticktime:zookeeper服务器与客户端服务器之间维持心跳的时间间隔。

dataDir:zookeeper保持数据的目录,默认情况下,日志文件也保存在此

clientPort:客户端连接zookeeper服务器的端口,zookeeper会接听到这个端口,接受客户端的访问请求

zookeeper Client命令:

$bin/zkCli.sh -server locallhost:2181


server.A=B.C.D : A表示第记号服务器,B为IP地址,C表示这个服务器与leader服务器交换信息的端口,D为选举时服务器互通信的端口,在myid里的编号其实就是A
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: