Java大数据开发中ZooKeeper的入门操作是怎样的

Java大数据开发中ZooKeeper的入门操作是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

1.1 概述

ZooKeeper翻译中文名称是动物园管理员。那是不是就代表和动物有关呢?答案说是也是,说不是也不是。为什么这么说呢?动物园管理员管理的其实不是真正的动物,而是很多以动物命名的框架运行会用到ZooKeeper,大数据中很多框架都与动物有关,比如pig,hive等等,这就是奇葩之处。老外们对框架的命名也太随意了,想一出是一出。

ZooKeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目,Apache出品,所以肯定差不到哪去咯。

1.2 工作机制

Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应,从而实现集群中类似Master/Slave管理模式,不好理解,我们看下图:

Java大数据开发中ZooKeeper的入门操作是怎样的

我们详细来介绍工作机制里的每一步:

① 图中1表示,服务器启动的时候,都会向ZooKeeper(以下简称ZK)进行注册信息;

②  图中2表示,客户端获取到当前在线服务器列表,并且注册监听;

③  图中3表示,有一个哥们手残,搞挂了一台服务器,服务器2现在挂掉;

④  图中4表示,ZK一段时间内,没有接收到服务器2发射的小biubiu,会通过服务器上下线事件通知客户端

⑤  图中5表示,重新获取服务器列表,并注册监听。

1.3 ZK特点

Java大数据开发中ZooKeeper的入门操作是怎样的

上图是一个ZK集群,我们看一下他们的特点:

①  ZK集群,是由一个领导者(leader),多个追随者(follower)组成

②  只要有半数以上的节点存活,ZK集群就能正常使用,肯定有小可爱会有疑问,那如果四个机器挂掉两个呢?这样的话,我们的集群就剩了一个半数,不叫“半数以上”好吗,所以四个挂掉两个也是不能用滴。为了区分什么是半数以上,大家记好了,搭建集群的时候,我们搭建奇数台,不就好办了么。

③  每个服务端都会保存一份数据副本,客户端无论连接哪一个服务端,数据都是一致的。小伙伴们要搞清楚咯:这里的数据指的是集群服务器的状态信息,与你数据库那些数据没有半毛钱关系。

④  来自同一个客户端的更新请求,按期发送顺序,依次执行。

⑤  原子性:集群机器一次数据更新,要么全部成功,要么全部失败。

⑥  在一定时间范围内,客户端能读到最新数据。

这么些特点至少要理解半数以上哟(当然,主要是前几条了)

1.4 应用场景

1.4.1 统一命名服务

分布式环境下,需要对应用/服务进行统一命名,便于识别。

1.4.2 统一配置管理

分布式环境下,要求集群中,所有节点的配置信息是一致的,对配置文件修改后也需要快速同步到各个节点上。配置管理就可交由ZK实现,过程如下:

① 可将配置信息写入ZK的一个节点

② 每个客户端服务器监听这个节点

③ 一旦节点数据被修改,ZK将通知每个客户端服务器

1.4.3 统一集群管理

分布式环境中需要实时掌握每个节点的状态,并且根据实时状态做一些调整。ZK就可以实时监控节点状态的变化。实现过程如下:

① 可将节点信息,写入ZK的一个节点

② 监听节点,实时获取节点状态信息

1.4.4 软负载均衡

可以根据每台服务器的访问数,选择访问数最少的服务器进行访问。

1.5 软件下载

官网下载页面地址:https://zookeeper.apache.org/releases.html

1.6 ZK安装(单机模式,非正式环境,可用于测试)

1.6.1 安装前准备

① 安装JDK

② 拷贝ZK安装包到Linux

③ 解压到指定目录

在opt目录下创建dev文件夹,以后将解压文件,解压到此处。

Java大数据开发中ZooKeeper的入门操作是怎样的

1.6.2 配置修改

① 将/opt/dev/zookeeper-3.4.10/conf这个路径下zoo_sample.cfg修改为zoo.cfg

Java大数据开发中ZooKeeper的入门操作是怎样的

② 编辑zoo.cfg,修改dataDir路径

Java大数据开发中ZooKeeper的入门操作是怎样的

1.6.3 操作ZK

① 启动ZK

命令:[root@hadoop100 bin]# ./zkServer.sh start

② 查看进程是否启动 

命令:jps

③ 查看状态

命令:[root@hadoop100 bin]#  ./zkServer.sh status

④ 启动客户端

命令:[root@hadoop100 bin]# ./zkCli.sh

⑤ 退出客户端

命令:[root@hadoop100 bin]# quit

⑥ 停止ZK

命令:[root@hadoop100 bin]#  ./zkServer.sh stop

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/231884.html

(0)
上一篇 2022年1月18日
下一篇 2022年1月18日

相关推荐

发表回复

登录后才能评论