大数据之Zookeeper

1. Zookeeper入门

1.1 概述

Zookeeper就是一个协调者,它存储和管理着集群数据(是一个文件系统,此数据是各个节点的状态),并且当某个节点下线后,它负责通知客户端,告知集群状况(通知机制)。
所以我总结,Zookeeper = 文件系统 + 通知机制的框架。

1.2特点

①全局数据一致(各个节点的数据是一致的)。
②数据更新时,全部的节点更新成功才叫成功。
③去中心化集群,集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。

1.3 数据结构

Zookeeper的数据模型的结构与Unix文件系统很类似,整体上可以看作是一棵树,每个节点称作一个ZNode。每一个ZNode默认能够存储1MB的数据,每个节点都可以通过其路径唯一标识。
好了,这里概念可能抽象,我来解释一下,每一个节点它是文件也是一个值,也就说它有文件的属性也有值的属性。

在这里插入图片描述

1.4 应用场景

其实Zookeeper的应用场景很多,我们在Hadoop入门里面就有一张框架图,Zookeeper它的位置大家记得的话,它是直接竖着的,所以说很多框架都会和Zookeeper交互。我就来说一下常用的场景:
①去中心化集群、协调出临时主机(当主机挂掉时再协调新的主机)(HA)
②提供主从结耦服务(Hbase,主机挂掉,短时间内从机不受影响)

2. Zookeeper的安装

本地安装部署

①拷贝Zookeeper安装包到Linux系统下
②解压到/opt/module目录下

[atguigu@hadoop102 software]$ tar -zxvf zookeeper-3.5.7.tar.gz -C /opt/module/

③修改环境变量

[atguigu@hadoop102 ~]$ vim /etc/profile.d/my_env.sh 
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin

#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
#ZOOKEEPER_HOME
export ZOOKEEPER_HOME=/opt/module/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

④将/opt/module/zookeeper/conf这个路径下的zoo_sample.cfg,拷贝一份为zoo.cfg;(我在进行这部操作之前将Zookeeper解压的名字改成了Zookeeper)

[atguigu@hadoop102 conf]$ cp zoo_sample.cfg zoo.cfg

修改zoo.cfg文件

[atguigu@hadoop102 zookeeper]$ vim zoo.cfg

修改内容如下:

dataDir=/opt/module/zookeeper/zkData

大家在这里注意到了,我们没有ZkData这个文件夹,所以需要创建一个ZkData文件夹

[atguigu@hadoop102 zookeeper]$ mkdir zkData

这个时候就可以启动Zookeeper了

[atguigu@hadoop102 ~]$ zkServer.sh start

查看一下启动状态

[atguigu@hadoop102 ~]$ jps
4352 NodeManager
4753 JobHistoryServer
75173 Jps
3388 DataNode
1773 QuorumPeerMain
3183 NameNode

启动客户端

[atguigu@hadoop102 ~]$ zkCli.sh

退出客户端

[zk: localhost:2181(CONNECTED) 0] quit

3.Zookeeper操作

3.1 分布式安装部署

1.集群规划
在hadoop102、hadoop103、hadoop104上面部署Zookeeper。
2. 配置服务器编号
我们之前创建了一个ZkData文件夹没有使用,现在我们需要在这个文件夹下面创建一个myid的文件

[atguigu@hadoop102 zkData]$ touch myid

编辑一下myid文件

[atguigu@hadoop102 zkData]$ vi myid
2

同步一下文件到hadoop103和hadoop104上面

[atguigu@hadoop102 zkData]$ xsync myid

分别将hadoop103和hadoop104上面的内容改为3和4。
3.配置zoo.cfg文件
打开zoo.cfg文件

[atguigu@hadoop102 conf]$ vim zoo.cfg

增加如下配置

dataDir=/opt/module/zookeeper/zkData
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888

同步zoo.cfg文件
4.配置群起Zookeeper
我们在/opt/module/zookeeper/bin目录下创建一个脚本zk.sh

[atguigu@hadoop102 bin]$ mkdir zk.sh

添加如下内容

#!/bin/bash

if (($#==0))
then
   exit 1;
fi
for i 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值