Hadoop生态圈技术栈---Zookeeper和HBase

论坛 期权论坛     
选择匿名的用户   2021-5-22 22:04   0   0
<h1>1. Zookeeper简介</h1>
<h2>1.1 Zookeeper是什么?</h2>
<p>Zookeeper 是一个分布式协调服务的开源框架。 主要用来解决分布式集群中应用系统的一致性问题,例如怎样避免同时操作同一数据造成脏读的问题。分布式系统中数据存在一致性的问题!!<br><strong>ZooKeeper 本质上是一个分布式的小文件存储系统</strong>。 提供基于类似于文件系统的目录树方式的数据存储,并且可以对树中的节点进行有效管理。<br><strong>ZooKeeper 提供给客户端监控存储在zk内部数据的功能</strong>,从而可以达到基于数据的集群管理。 诸如: 统一命名服务(dubbo)、分布式配置管理(solr的配置集中管理)、分布式消息队列(sub/pub)、分布式锁、分布式协调等功能。</p>
<h2>1.2 zookeeper的架构组成</h2>
<p style="text-align:center;"><img alt="" height="337" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-5a050c97116b5a2aaecc174e662cca71.png" width="477"></p>
<p><br> Leader</p>
<ul><li>Zookeeper 集群工作的核心角色</li><li>集群内部各个服务器的调度者。</li><li>事务请求(写操作) 的唯一调度和处理者,保证集群事务处理的顺序性;对于 create,setData, delete 等有写操作的请求,则需要统一转发给leader 处理, leader 需要决定编号、执行操作,这个过程称为一个事务。</li></ul>
<p>Follower</p>
<ul><li>处理客户端非事务(读操作) 请求,</li><li>转发事务请求给 Leader;</li><li>参与集群 Leader 选举投票 2n-1台可以做集群投票。</li><li>此外,针对访问量比较大的 zookeeper 集群, 还可新增观察者角色。</li></ul>
<p>Observer</p>
<ul><li>观察者角色,观察 Zookeeper 集群的最新状态变化并将这些状态同步过来,其对于非事务请求可以进行独立处理,对于事务请求,则会转发给 Leader服务器进行处理。</li><li>不会参与任何形式的投票只提供非事务服务,通常用于在不影响集群事务处理能力的前提下提升集群的非事务处理能力。增加了集群增加并发的读请求。</li></ul>
<p style="text-align:center;"><img alt="" height="334" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-08acda67fc7eaf5439e4a1eb0319b986.png" width="500"></p>
<p>ZK也是Master/slave架构,但是与之前不同的是zk集群中的Leader不是指定而来,而是通过选举产生。</p>
<h2>1.3 Zookeeper 特点</h2>
<p>1. Zookeeper:一个领导者(leader:老大),多个跟随者(follower:小弟)组成的集群。<br> 2. Leader负责进行投票的发起和决议,更新系统状态(内部原理)<br> 3. Follower用于接收客户请求并向客户端返回结果,在选举Leader过程中参与投票<br> 4. 集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。<br> 5. 全局数据一致:每个server保存一份相同的数据副本,Client无论连接到哪个server,数据都是一致的。<br> 6. 更新请求顺序进行(内部原理)<br> 7. 数据更新原子性,一次数据更新要么成功,要么失败。</p>
<h1><br> 2. Zookeeper环境搭建</h1>
<h2>2.1 Zookeeper的搭建方式</h2>
<p>Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。<br> ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境;<br> ■ 伪集群模式:就是在一台服务器上运行多个Zookeeper 实例;<br> ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”</p>
<h2>2.2 Zookeeper集群搭建</h2>
<p><strong>下载</strong><br> 首先我们下载稳定版本的zookeeper http://zookeeper.apache.org/releases.html</p>
<p><strong>上传</strong><br> 下载完成后,将zookeeper压缩包 zookeeper-3.4.14.tar.gz上传到linux系统/opt/lagou/software<br> 解压 压缩包</p>
<pre class="blockcode"><code>tar -zxvf zookeeper-3.4.14.tar.gz -C ../servers/</code></pre>
<p>修改配置文件创建data与log目录</p>
<pre class="blockcode"><code>#创建zk存储数据目录
mkdir -p /opt/lagou/servers/zookeeper-3.4.14/data
#创建zk日志文件目录
mkdir -p /opt/lagou/servers/zookeeper-3.4.14/data/logs
#修改zk配置文件
cd /opt/lagou/servers/zookeeper-3.4.14/conf
#文件改名
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
#更新datadir
dataDir&#61;/opt/lagou/servers/zookeeper-3.4.14/data
#增加logdir
dataLogDir&#61;/opt/lagou/servers/zookeeper-3.4.14/data/logs
#增加集群配置
##server.服务器ID&#61;服务器IP地址:服务器之间通信端口:服务器之间投票选举端口
server.1&#61;linux121:2888:3888
server.2&#61;linux122:2888:3888
server.3&#61;linux123:2888:3888
#打开注释
#ZK提供了自动清理事务日志和快照文件的功能,这个参数指定了清理频率,单位是小时
autopurge.purgeInterval&#61;1</code></pre>
<p style="text-align:center;"><img alt="" height
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP