玩转大数据计算之ZooKeeper

因为ZooKeeper是其他后续大多数大数据相关产品都需要使用的服务,我们首先安装ZooKeeper。

ZooKeeper官方介绍
Zookeeper是一个高性能,分布式的,开源分布式应用协调服务。它提供了简单原始的功能,分布式应用可以基于它实现更高级的服务,比如同步,配置管理,集群管理,名空间。它被设计为易于编程,使用文件系统目录树作为数据模型。服务端跑在java上,提供java和C的客户端 API。

ZooKeeper总体架构
Zookeeper服务自身组成一个集群(2n+1个服务允许n个失效)。Zookeeper服务有两个角色,一个是leader,负责写服务和数据同步,剩下的是follower,提供读服务,leader失效后会在follower中重新选举新的leader。
逻辑架构图如下:

《玩转大数据计算之ZooKeeper》 zookeeper-arch.jpg

1.客户端可以连接到每个server,每个server的数据完全相同。
2.每个follower都和leader有连接,接受leader的数据更新操作。
3.Server记录事务日志和快照到持久存储。
4.大多数server(n+1)可用,整体服务就可用。

Zookeeper数据模型
Zookeeper表现为一个分层的文件系统目录树结构(不同于文件系统的是,节点可以有自己的数据,而文件系统中的目录节点只有子节点)。

数据模型结构图如下:

《玩转大数据计算之ZooKeeper》 zookeeper-data.png

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

ZooKeeper特性

  • 顺序一致性:按照客户端发送请求的顺序更新数据。
  • 原子性:更新要么成功,要么失败,不会出现部分更新。
  • 单一性:无论客户端连接哪个server,都会看到同一个视图。
  • 可靠性:一旦数据更新成功,将一直保持,直到新的更新。
  • 及时性:客户端会在一个确定的时间内得到最新的数据。

Zookeeper应用场景

  • 数据发布与订阅
    应用配置集中到节点上,应用启动时主动获取,并在节点上注册一个watcher,每次配置更新都会通知到应用。

  • 名空间服务
    分布式命名服务,创建一个节点后,节点的路径就是全局唯一的,可以作为全局名称使用。

  • 分布式通知/协调
    不同的系统都监听同一个节点,一旦有了更新,另一个系统能够收到通知。

  • 分布式锁
    Zookeeper能保证数据的强一致性,用户任何时候都可以相信集群中每个节点的数据都是相同的。一个用户创建一个节点作为锁,另一个用户检测该节点,如果存在,代表别的用户已经锁住,如果不存在,则可以创建一个节点,代表拥有一个锁。

  • 集群管理
    每个加入集群的机器都创建一个节点,写入自己的状态。监控父节点的用户会受到通知,进行相应的处理。离开时删除节点,监控父节点的用户同样会收到通知。

ZooKeeper单机版安装
1.下载安装包
在ZooKeeper官方下载地址:http://www.apache.org/dyn/closer.cgi/zookeeper/ 选择一个镜像下载,比如:http://www.webhostingreviewjam.com/mirror/apache/zookeeper/,下载目前使用的比较多的版本3.4.6,如下:

《玩转大数据计算之ZooKeeper》 zookeeper-download.png
《玩转大数据计算之ZooKeeper》 zookeeper-download-3.4.6.png

2.解压安装
将下载的文件拷贝到安装目录,为了方便管理我将所有的安装包都拷贝在/Users/wesley/apps进行安装,如下所示:

《玩转大数据计算之ZooKeeper》 install-dir.png

在/Users/wesley/apps目录下执行如下命令先解压压缩包:
tar zxvf zookeeper-3.4.6.tar.gz

《玩转大数据计算之ZooKeeper》 zookeeper-tar-zxvf.png

解压后目录如下:

《玩转大数据计算之ZooKeeper》 zookeeper-install-zookeeper-1.png

进入到解压的目录的conf文件夹下:

《玩转大数据计算之ZooKeeper》 zookeeper-install-zookeeper-2.png

复制一份zoo_sample.cfg并重命名为zoo.cfg,并修改:
dataDir=/Users/wesley/apps/data/zookeeper
修改后的zoo.cfg内容如下:

《玩转大数据计算之ZooKeeper》 zookeeper-install-zookeeper-3.png

以后台命令方式启动,/Users/wesley/apps/zookeeper-3.4.6文件夹下执行如下命令:
bin/zkServer.sh start &

《玩转大数据计算之ZooKeeper》 zookeeper-install-zookeeper-4.png

至此ZooKeeper安装完成,默认安装端口为2181。

    原文作者:pptb
    原文地址: https://www.jianshu.com/p/087a694dc0a6
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞