Zookeeper-3.4.5-cdh5.0.1 单机模式、副本模式安装、配置说明

编写不易,转载请注明(http://shihlei.iteye.com/blog/2083614)!

一概述

       它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

       版本:zookeeper-3.4.5-cdh5.0.1.tar.gz

 

二 单机安装

1)解压:tar -xvf zookeeper-3.4.5-cdh5.0.1.tar.gz

2)配置环境变量:vi ~/.bashrc 

export ZOOKEEPER_HOME=/home/zero/zookeeper/zookeeper-3.4.5-cdh5.0.1
export PATH=$PATH:$ZOOKEEPER_HOME/bin
 source ~/.bashrc

3)修改配置文件:

(1)修改配置:vi $ZOOKEEPER_HOME/conf/zoo.cfg

          默认会加载$ZOOKEEPER_HOME/conf/zoo.cfg

          操作:

cp $ZOOKEEPER_HOME/conf/zoo_sample.cfg $ZOOKEEPER_HOME/conf/zoo.cfg

修改项:dataDir=/home/zero/zookeeper/zookeeper-3.4.5-cdh5.0.1/data

 

(2)修改日志位置:vi $ZOOKEEPER_HOME/libexec/zkEnv.sh

         56行: 找到如下位置修改语句:ZOO_LOG_DIR="$ZOOKEEPER_HOME/logs"

4)启动:zkServer.sh start

[zero@CentOS-StandAlone conf]$ zkServer.sh start

JMX enabled by default

Using config: /home/zero/zookeeper/zookeeper-3.4.5-cdh5.0.1/bin/../conf/zoo.cfg

Starting zookeeper ... STARTED

 

5)验证:

进程:

[zero@CentOS-StandAlone conf]$ jps

11776 QuorumPeerMain

状态:

[zero@CentOS-StandAlone conf]$ zkServer.sh status

JMX enabled by default

Using config: /home/zero/zookeeper/zookeeper-3.4.5-cdh5.0.1/bin/../conf/zoo.cfg

Mode: standalone

客户端:

[zero@CentOS-StandAlone conf]$ zkCli.sh

[zk: 127.0.0.1:2181(CONNECTED) 0] ls /

[zookeeper]

附录:停止:zkServer.sh stop

三 副本安装

(一)规划

结点

Ip

Zookeeper-01

8.8.8.13

Zookeeper-02

8.8.8.14

Zookeeper-03

8.8.8.15

(二)安装

1)各个结点部署zookeeper,参照独立安装进行:

第1步:解压

第2步:设置环境变量

第3-2步:修改日志输出

2)修改配置:vi $ZOOKEEPER_HOME/conf/zoo.cfg

[puppet@BigData-03 conf]$ vi zoo.cfg

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/home/zero/zookeeper/zookeeper-3.4.5-cdh5.0.1/data

clientPort=2181

#cluster

server.1=Zookeeper-01:2888:3888

server.2=Zookeeper-02:2888:3888

server.3=Zookeeper-03:2888:3888

3)设置myid

(1)Zookeeper-01:

mkdir $ZOOKEEPER_HOME/data

echo 1 > $ZOOKEEPER_HOME/data/myid

(2)Zookeeper-02:

mkdir $ZOOKEEPER_HOME/data

echo 2 > $ZOOKEEPER_HOME/data/myid

(3)Zookeeper-03:

mkdir $ZOOKEEPER_HOME/data

echo 3 > $ZOOKEEPER_HOME/data/myid

4)各结点启动:zkServer.sh start

5)验证

进程:

[zero@CentOS-Cluster-03 conf]$ jps

3051 Jps

2829 QuorumPeerMain

状态:

(1)zookeeper-01:

[zero@CentOS-Cluster-03 conf]$ zkServer.sh status

JMX enabled by default

Using config: /home/zero/zookeeper/zookeeper-3.4.5-cdh5.0.1/bin/../conf/zoo.cfg

Mode: follower

(2)zookeeper-01:

[zero@CentOS-Cluster-04 libexec]$ zkServer.sh status

JMX enabled by default

Using config: /home/zero/zookeeper/zookeeper-3.4.5-cdh5.0.1/bin/../conf/zoo.cfg

Mode: follower

(3)zookeeper-01:

[zero@CentOS-Cluster-05 libexec]$ zkServer.sh status

JMX enabled by default

Using config: /home/zero/zookeeper/zookeeper-3.4.5-cdh5.0.1/bin/../conf/zoo.cfg

Mode: leader

四 附录

zoo.cfg各配置项说明:

 

属性

意义

tickTime

时间单元,心跳和最低会话超时时间为tickTime的两倍

dataDir

数据存放位置,存放内存快照和事务更新日志

clientPort

客户端访问端口

initLimit

配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒。

syncLimit

这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个

server.id=host:port:port

server.A=B:C:D

集群结点列表:

A :是一个数字,表示这个是第几号服务器;

B :是这个服务器的 ip 地址;

C :表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;

D :表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

猜你喜欢

转载自shihlei.iteye.com/blog/2083614