大数据项目-2.zookeeper(一:理论和安装教程)

Zookeeper作为一个协调工具,主要应用于进程管理、集群管理、名字/IP管理及配置管理。它有四种节点类型:持久化、持久顺序、临时和临时顺序。在搭建Zookeeper集群时,通常选择奇数台服务器,并通过配置myid和server.参数实现集群。本文详细介绍了单节点和集群模式的安装步骤。
摘要由CSDN通过智能技术生成

一:为什么学习zookeeper?

1. 进程管理

我们可以通过zookeeper进行协调多个分布式进程之间的活动。
我们在分布式环境中,在每台服务器上都有完全相同的服务,如果我们将他们全部都开启的话,会浪费资源。但是,如果只是开启一个,会造成单节点模式。所以我们可以使用zookeeper的分布式锁进行管理。

2. 集群管理

我们集群是由多台服务器组成的,我们平时会对一些服务器进行替换,维修等等,我们可以使用zookeeper进行管理。

3. 名字ip管理

将我们的服务器注册在ip中,我们可以通过ip,增加新的域名来管理我们的ip,当我们修改域名的时候,直接在zk中修改即可。

4. 配置管理

我们服务器的配置,可以在服务器中修改,但是当我们要一起修改好多台的时候,我们直接在zk中可以集中修改,不需要单独进服务器中进行修改。

二:zookeeper是什么?

  1. zk顾名思义,是指动物园管理员。对于服务hadoop(大象),hive(蜜蜂)等服务可以进行管理。

  2. 存储结构
    在这里插入图片描述
    node四种类型
    (1)PERSISTENT 持久化节点: 所谓持久节点,是指在节点创建后,就一直存在,直到 有删除操作来主动清除这个节点。否则不会因为创建该节点的客户端会话失效而消失。

    (2)PERSISTENT_SEQUENTIAL 持久顺序节点:这类节点的基本特性和上面的节点类 型是一致的。额外的特性是,在 ZK 中,每个父节点会为他的第一级子节点维护一份时序, 会记录每个子节点创建的先后顺序。基于这个特性,在创建子节点的时候,可以设置这个属 性,那么在创建节点过程中,ZK 会自动为给定节点名加上一个数字后缀,作为新的节点名。 这个数字后缀的范围是整型的最大值。 在创建节点的时候只需要传入节点 “/test_”,这样 之后,zookeeper 自动会给”test_”后面补充数字。

    (3)EPHEMERAL 临时节点:和持久节点不同的是,临时节点的生命周期和客户端会 话绑定。也就是说,如果客户端会话失效,那么这个节点就会自动被清除掉。注意,这里提 到的是会话失效,而非连接断开。另外,在临时节点下面不能创建子节点。 这里还要注意一件事,就是当你客户端会话失效后,所产生的节点也不是一下子就消失 了,也要过一段时间,大概是 10 秒以内,可以试一下,本机操作生成节点,在服务器端用 命令来查看当前的节点数目,你会发现客户端已经 stop,但是产生的节点还在。

    (4) EPHEMERAL_SEQUENTIAL 临时自动编号节点:此节点是属于临时节点,不过带 有顺序,客户端会话结束节点就消失。

  3. Zookeeper 集群中的角色主要有以下三类
    在这里插入图片描述

三:怎么搭建zookeeper?

集群节点安装,我们使用安装的节点的台数,最好是奇数。三台或者五台。
目前,我使用的是三台,10.10.10.11,10.10.10.12,10.10.1.0.13,我们现在一台机器上10.10.10.11上安装。

单节点模式安装。

  1. 下载安装包。
    [zk下载地址](https://downloads.apache.org/zookeeper/zookeeper-3.6.3/)
    在这里插入图片描述

  2. 上传虚拟机服务器,解压。

cd /opt/app/zookeeper
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz

在这里插入图片描述 3. 来到解压后的目录中的 conf 路径下,将文件 zoo_sample.cfg 修改为 zoo.cfg。

mv zoo_sample.cfg zoo.cfg

在这里插入图片描述
4. 创建zkDate文件夹。

mkdir /opt/app/zookeeper/apache-zookeeper-3.6.3-bin/zkData
  1. 打开 zoo.cfg 文件,修改 dataDir 路径。
/opt/app/zookeeper/apache-zookeeper-3.6.3-bin/conf
vim zoo.cfg
dataDir=/opt/app/zookeeper/apache-zookeeper-3.6.3-bin/zkData

在这里插入图片描述
6. 启动服务

cd /opt/app/zookeeper/apache-zookeeper-3.6.3-bin/bin
./zkServer.sh start
  1. 查看服务
jps

在这里插入图片描述

./zkServer.sh status

在这里插入图片描述
8. 停止服务

 ./zkServer.sh stop

在这里插入图片描述

集群模式

  1. 先在服务器 10.10.10.11 上操作,来到我们创建的目录 /zkData 中,创建文件 myid(文件必须叫 myid,从源码中可以看到读取的文件就是 myid)。
cd /opt/app/zookeeper/apache-zookeeper-3.6.3-bin/zkData
vim myid
在第一行,添加11.之所以添加11,是因为我的这台服务器尾号是11,方便在集群中查找这台服务器。

在这里插入图片描述

  1. 在配置文件 zoo.cfg 中配置集群节点信息。
    在配置文件 zoo.cfg 的最下面增加如下的配置:
server.11=10.10.10.11:2888:3888
server.12=10.10.10.12:2888:3888
server.13=10.10.10.13:2888:3888

格式: server.A=B:C:D

A 是一个数字,表示这个是第几号服务器;集群模式下配置一个文件 myid,这个文件在 dataDir 目录下,这个文件里面有一个数据就是 A 的值,Zookeeper 启动时读取此文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是哪个 server。
B 是这个服务器的地址;
C 是这个服务器 Follower 与集群中的 Leader 服务器交换信息的端口;
D 是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

  1. 在其余节点(服务器)安装 Zookeeper。可以使用scp -r 到其他机器。
scp -r apache-zookeeper-3.6.3-bin root@10.10.10.12:/opt/app/zookeeper
scp -r apache-zookeeper-3.6.3-bin root@10.10.10.13:/opt/app/zookeeper
  1. 分发后,分别到其余服务器的 myid 文件中修改编号,10.10.10.12 的编号为12,10.10.10.13 的编号为13。
  2. 启动集群并查看状态
    每台服务器都执行以下命令
/opt/app/zookeeper/apache-zookeeper-3.6.3-bin/bin
./zkServer.sh start

在这里插入图片描述

  1. 查看状态
./zkServer.sh status

有一个leader,俩个follower。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值