章节内容
上节我们顺利完成了:
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 • 1
这里我选择: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 • 1 • 2
至此,我们 ZooKeeper 的单机安装完成!!!