基于Hadoop平台的电信客服数据的处理与分析③项目开发:搭建基于Hadoop的全分布式集群---任务5:ZooKeeper集群安装

任务描述

ZooKeeper是一个开源分布式协调服务,其独特的Leader-Follower集群结构,很好的解决了分布式单点问题。目前主要用于诸如:统一命名服务、配置管理、锁服务、集群管理等场景。大数据应用中主要使用ZooKeeper的集群管理功能。在这里使用ZooKeeper配合实现HBase元数据管理。

任务的主要内容为在master1、slave1、slaver2三个从节点上安装ZooKeeper,分别启动ZooKeeper并验证可用性。

任务指导

ZooKeeper集群是Hadoop集群的高可用(HA)必不可少的协处理框架,主要功能是对主节点(NameNode、ResourceManager)的状态监控及发生故障时进行主节点的自动切换。

ZooKeeper集群需要在主节点发生故障时进行领导者投票,故集群的数量应该为 2n+1 个且n >= 1。

ZooKeeper的安装步骤如下:

1、解压缩安装包到安装目录

2、配置ZooKeeper的系统环境变量,此步骤的主要目的是让ZooKeeper相关的命令能在系统的任意目录都可以执行

3、配置ZooKeeper配置文件zoo.cfg及myid文件

任务实现

ZooKeeper是一个开源分布式协调服务,其独特的Leader-Follower集群结构,很好的解决了分布式单点问题。目前主要用于诸如:统一命名服务、配置管理、锁服务、集群管理等场景。大数据应用中主要使用ZooKeeper的集群管理功能。

本集群使用 zookeeper-3.4.13.tar.gz 版本。首先在master1节点安装Zookeeper,方法如下:

进入压缩包所在目录:

复制代码
[root@master1 ~]# cd /opt/software

解压ZooKeeper安装包到/opt/app安装目录:

复制代码
[root@master1 software]# tar -zxf zookeeper-3.4.13.tar.gz -C /opt/app/

在master、slave1、slave2分别配置用户环境变量(这里以master1为例):

复制代码
[root@master1 software]# vi /etc/profile
export ZK_HOME=/opt/app/zookeeper-3.4.13
export PATH=$PATH:$ZK_HOME/bin

使修改的环境变量生效:

复制代码
[root@master1 ~]# source /etc/profile

修改ZooKeeper的配置文件:

复制代码
[root@master1 ~]# cd $ZK_HOME/conf/
[root@master1 conf]# cp zoo_sample.cfg zoo.cfg
[root@master1 conf]# vi zoo.cfg

修改zoo.cfg中的内容,具体如下所示:

复制代码
# 客户端心跳时间(毫秒)
tickTime=2000
# 允许心跳间隔的最大时间
initLimit=10
# 同步时限
syncLimit=5
# 数据存储目录
dataDir=/opt/app/zookeeper-3.4.13/data
# 数据日志存储目录
dataLogDir=/opt/app/zookeeper-3.4.13/data/log
# 端口号
clientPort=2181
# 集群节点和服务端口配置
server.1=master1:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
# 以下为优化配置
# 服务器最大连接数,默认为10,改为0表示无限制
maxClientCnxns=0
# 快照数
autopurge.snapRetainCount=3
# 快照清理时间,默认为0
autopurge.purgeInterval=1

创建ZooKeeper的数据存储目录和日志存储目录:

复制代码
[root@master1 ~]# cd $ZK_HOME/
[root@master1 zookeeper-3.4.13]# mkdir data
[root@master1 zookeeper-3.4.13]# mkdir data/log

在data目录中创建一个文件myid,输入内容为1

复制代码
[root@master1 zookeeper-3.4.13]# echo "1" > /opt/app/zookeeper-3.4.13/data/myid

修改ZooKeeper的日志配置文件

复制代码
[root@master1 zookeeper-3.4.13]# vi /opt/app/zookeeper-3.4.13/conf/log4j.properties
# 修改 zookeeper.root.logger= 项的值如下
zookeeper.root.logger=INFO,ROLLINGFILE

创建日志目录

复制代码
[root@master1 ~]# mkdir /opt/app/zookeeper-3.4.13/logs

将master1节点上的ZooKeeper目录同步到slave1和slave2节点,并修改ZooKeeper的数据文件。此外,不要忘记设置用户环境变量。

在slave1中将ZooKeeper目录复制到其它节点

复制代码
[root@master1 ~]# scp -r /opt/app/zookeeper-3.4.13 slave1:/opt/app/
[root@master1 ~]# scp -r /opt/app/zookeeper-3.4.13 slave2:/opt/app/

在slave1中修改data目录中的myid文件

复制代码
[root@slave1 ~]# echo "2" > /opt/app/zookeeper-3.4.13/data/myid

在slave3中修改data目录中的myid文件

复制代码
[root@slave2 ~]# echo "3" > /opt/app/zookeeper-3.4.13/data/myid

最后,在安装了ZooKeeper的各节点上启动ZooKeeper,并查看节点状态,方法如下:

在master1、slave1、slave2启动zkServer

复制代码
[root@master1 ~]# zkServer.sh start
[root@slave1 ~]# zkServer.sh start
[root@slave2 ~]# zkServer.sh start

在集群所有节点(master、slave1、slave2)中查看状态

复制代码
# zkServer.sh status

回显如下

复制代码
[root@master1 ~]#  zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/app/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: follower

[root@slave1 ~]#  zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/app/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: leader

[root@slave2 ~]#  zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/app/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: follower

可以看到【slave1】的【Mode】为【leader】其余的都为【follower】则表示集群正常启动。

注意:各节点的【Mode】状态是随机的,只要整个集群中有一个【leader】其余的都是【follower】则集群就是正常的。

关闭ZooKeeper命令如下

复制代码
# zkServer.sh stop
相关推荐
得物技术2 天前
从埋点需求到规则资产:Hermes Agent 重构得物数仓工作流
大数据·llm·ai编程
久美子2 天前
AI驱动数仓建设的Harness工程实践——本体建模、知识分层与上下文工程
大数据
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
大志哥1233 天前
ES和Logstash日志链路系统上线后遭遇切片爆炸(解决)
大数据·elasticsearch
果丁智能3 天前
物联网智能锁赋能集中式住宿:身份核验与远程权限管控的全链路技术实践
大数据·人工智能·物联网·智能家居
王小王-1233 天前
基于 Hive 的网易云音乐数据分析及可视化系统
hive·hadoop·数据分析·音乐数据分析·网易云音乐分析·hive音乐分析·hadoop网易云
ApacheSeaTunnel3 天前
实战演示 | 基于 Apache SeaTunnel 与 Apache DolphinScheduler 实现 MySQL 到 Doris 离线定时增量同步
大数据·mysql·开源·doris·数据集成·seatunnel·数据同步
weixin_397574093 天前
PDF复杂表格的1:1还原引擎:跨页表格自动拼接技术实战
大数据·人工智能·pdf
极光代码工作室3 天前
基于数据仓库的电商数据分析平台
大数据·hadoop·python·spark·数据可视化
秋名山码民3 天前
Graph RAG 深度解析:从向量检索到知识推理的技术演进
大数据·人工智能·rag