ZooKeeper部署

Zookeeper整体结构

Zookeeper服务自身组成一个集群(2n+1个服务容许n个失效)。Zookeeper服务有两个角色,一个是leader,负责写服务和数据同步,剩下的是follower,提供读服务,leader失效后会在follower中从新选举新的leader。java

Zookeeper逻辑图以下,apache

1.jpg

  1. 客户端能够链接到每一个server,每一个server的数据彻底相同。服务器

  2. 每一个follower都和leader有链接,接受leader的数据更新操做。ide

  3. Server记录事务日志和快照到持久存储。测试

  4. 大多数server可用,总体服务就可用。ui

Zookeeper数据模型

Zookeeper表现为一个分层的文件系统目录树结构(不一样于文件系统的是,节点能够有本身的数据,而文件系统中的目录节点只有子节点)。spa

数据模型结构图以下,3d

2.png

圆形节点能够含有子节点,多边形节点不能含有子节点。一个节点对应一个应用,节点存储的数据就是应用须要的配置信息。日志

Zookeeper 特色

  • 顺序一致性:按照客户端发送请求的顺序更新数据。server

  • 原子性:更新要么成功,要么失败,不会出现部分更新。

  • 单一性 :不管客户端链接哪一个server,都会看到同一个视图。

  • 可靠性:一旦数据更新成功,将一直保持,直到新的更新。

  • 及时性:客户端会在一个肯定的时间内获得最新的数据。

 

Zookeeper集群的安装,节点数2*n+1,

 

  • tickTime: zookeeper中使用的基本时间单位, 毫秒值.

  • dataDir: 数据目录. 能够是任意目录.

  • dataLogDir: log目录, 一样能够是任意目录. 若是没有设置该参数, 将使用和dataDir相同的设置.

  • clientPort: 监听client链接的端口号.

、准备Zookeeper环境

配置java环境变量:

vi /etc/profile

export JAVA_HOME=/usr/local/jdk1.7.0_45

export ZOOKEEPER_HOME=/usr/local/zookeeper

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$ZOOKEEPER_HOME/lib

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin:$ZOOKEEPER_HOME/bin

rpm安装jdk路径:export JAVA_HOME=/usr/java/jdk1.7.0_45

配置hostname:

vi /etc/profile

172.16.23.195zookeeper1

172.16.23.196zookeeper2

reboot

2、配置zookeeper

Wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.3.6/

tar –xvzf zookeeper-3.3.6.tar.gz

mv /zookeeper-3.3.6 /usr/local/zookeeper

cd /usr/local/zookeeper/conf

mv mv zoo_sample.cfg zoo.cfg

vi zoo.cfg

添加如下内容zookeeper集群:

server.1= zookeeper1:2888:3888

server.2= zookeeper1:2888:3888

标识Server ID:

cd /tmp/zookeeper

touch myid

1

其它zookeeper服务器配置步骤相同,更改myid值。

启动zookeeper:

/usr/local/zookeeper/bin/zkServer.sh start

查看启动状态:

/usr/local/zookeeper/bin/zkServer.sh status

093140221.png

093142542.png

 

启动客户端脚本:

zkCli.sh -server  zookeeper1:2181

显示根目录下、文件:
ls / 

093204739.png

建立文件,并设置初始内容:
create /test 1注释:1为赋值。

获取文件内容:
get /test

093230989.png

测试集群效果,登陆另外一台zookeeper

zkCli.sh -server  zookeeper2:2181

ls /

093250609.png

正确显示新建节点test,集群正常。

修改文件内容:
set /test 2

删除文件:
delete /test

退出客户端:
quit 

相关文章
相关标签/搜索