Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer

章节内容

上节我们顺利完成了:

  • Sqoop CDC ChangeDataCapture 差量数据捕获
  • CDC的几种类型 侵入式和非侵入式
  • Sqoop 数据差量更新导入 从 MySQL 到 Hive

Sqoop目前就算告一段落了,接下来我们将开始 ZooKeeper!!!

背景介绍

这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。
之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。

  • 2C4G 编号 h121
  • 2C4G 编号 h122
  • 2C2G 编号 h123

请添加图片描述

ZooKeeper简介

ZooKeeper 是一个分布式协调服务的开源框架。主要用于解决分布式集群中应用系统的一致性问题,例如怎么避免同时操作同一数据造成脏数据的问题。
分布式系统中数据存在一致性的问题!

  • ZooKeeper 本质上是一个分布式的小文件存储系统。提供基于类似于文件系统的目录树方式的数据存储,并且可以对树中的节点进行有效管理。
  • ZooKeeper 提供客户端监控存储在ZK内部数据的功能,从而可以达到基于数据的集群管理。诸如:统一命名服务(Dubbo)、分布式配置管理(Solr)、分布式消息队列(Sub/Pub)、分布式锁、分布式协调等功能。

架构组成

我们也将进行集群的搭建集群模式

  • h121 节点
  • h122 节点
  • h123 节点
    在这里插入图片描述

Leader

  • ZooKeeper 集群工作的核心角色
  • 集群内部各个服务器的调度者
  • 事务请求(写操作)的唯一调度和处理者,保证集群事务处理的顺序性,对于 create,setData、delete 等有写操作的请求,则需要统一转发给 leader 处理。

Follower

  • 处理客户端非事务(读操作)请求
  • 转发事务请求给 Leader
  • 参与集群 Leader 选择股票 2n-1 台可新增观察者角色

Observer

  • 观察者角色,观察 ZooKeeper 集群的最新状态变化并将这些状态同步过来,其对于非事务请求可以进行独立处理,对于事务请求,则会转发给 Leader 服务器进行处理。
  • 不会参与任何形式的投票只提供非事务服务,通常用于不影响集群事务处理能力的前提下提升集群的非事务处理能力。增加了集群增加并发的读请求。

在这里插入图片描述

项目简介

  • Zookeeper 一个Leader 和 多个Follower 组成集群
  • Leader 负责进行投票、决议、更新状态
  • Follower 用于接受客户端请求和返回结果,在选举Leader过程中参与投票
  • 集群中只要有半数以上存活节点,ZooKeeper就可以正常工作
  • 全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个都是相同的数据。
  • 更新请求会顺序进行
  • 数据更新有原子性,一次数据更新要么成功,要么失败

搭建方式

搭建有分为几种方式:

单机模式

ZooKeeper只运行在一台服务器上,适合测试环境。

伪集群模式

就是在一台机器上运行多个 ZooKeeper

集群模式

生产环境,多台机器

下载服务

http://zookeeper.apache.org/releases.html

这里我选择:3.8.4 版本进行安装测试,这是最新的稳定版本。
下载地址如下,你可以使用 wget 进行下载

https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz

下载完成至服务器节点

解压安装

cd /opt/software/
tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz -C ../servers/

在这里插入图片描述

文件夹配置

数据文件夹

cd /opt/servers/apache-zookeeper-3.8.4-bin
mkdir -p /opt/servers/apache-zookeeper-3.8.4-bin/data

日志文件夹

cd /opt/servers/apache-zookeeper-3.8.4-bin
mkdir -p /opt/servers/apache-zookeeper-3.8.4-bin/logs

配置文件

在这里插入图片描述

cd /opt/servers/apache-zookeeper-3.8.4-bin/conf
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg

修改为如下的内容:

# 数据和日志文件夹
dataDir=/opt/servers/apache-zookeeper-3.8.4-bin/data
dataLogDir=/opt/servers/apache-zookeeper-3.8.4-bin/logs

# 集群地址
server.1=h121.wzk.icu:2888:3888
server.2=h122.wzk.icu:2888:3888
server.3=h123.wzk.icu:2888:3888

# 清理日志 1小时
autopurge.purgeInterval=1

修改结果如下图:
在这里插入图片描述

myid配置

我们需要在数据目录下新建一个叫 myid 文件夹,内容为1,后续集群要用到:

cd /opt/servers/apache-zookeeper-3.8.4-bin/data
echo 1 > myid

至此,我们 ZooKeeper 的单机安装完成!!!

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 10:46:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 10:46:01       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 10:46:01       58 阅读
  4. Python语言-面向对象

    2024-07-13 10:46:01       69 阅读

热门阅读

  1. LeetCode 每日一题 2024/7/8-2024/7/14

    2024-07-13 10:46:01       26 阅读
  2. 工作需求第一次写千行SQL语句

    2024-07-13 10:46:01       20 阅读
  3. 项目管理开发实战

    2024-07-13 10:46:01       28 阅读
  4. 【AI原理解析】—知识图谱(KG)原理

    2024-07-13 10:46:01       18 阅读
  5. 0139__TCP协议

    2024-07-13 10:46:01       20 阅读
  6. sqlmap常用参数及示例

    2024-07-13 10:46:01       23 阅读
  7. 软件测试面试200问【答案+文档】

    2024-07-13 10:46:01       24 阅读
  8. C++之STL简介

    2024-07-13 10:46:01       23 阅读
  9. Linux——多路IO

    2024-07-13 10:46:01       25 阅读
  10. 【C++】C++中的extern用法

    2024-07-13 10:46:01       21 阅读
  11. 如何理解李彦宏说的“不要卷模型,要卷应用”

    2024-07-13 10:46:01       17 阅读
  12. 2024年,SEC对加密监管的格局将继续演变

    2024-07-13 10:46:01       20 阅读