基于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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/39860.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Redis实现消息队列:List、Pub/Sub和Stream的实践

摘要 Redis是一个高性能的键值存储系统,它的多种数据结构使其成为实现消息队列的理想选择。本文将探讨如何使用Redis的List、Pub/Sub和Stream数据结构来实现一个高效的消息队列系统。 1. 消息队列的基本概念 消息队列是一种应用程序之间进行通信的机制&#xff0…

Qt/C++模拟鼠标键盘输入

1、控制鼠标移动 (1)Qt方案 QScreen* sc QGuiApplication::primaryScreen(); QCursor* c new QCursor(); int deltaX 10; int deltaY 10; c->setPos(sc, c->pos().x() deltaX, c->pos().y() deltaY);(2)Windows原…

人工智能发展方向的思考:简单与复杂的对立与融合

人工智能(AI)的迅猛发展,正在以惊人的速度改变着我们的世界。它在很多领域展示了强大的能力,特别是在处理简单、重复的任务方面,AI已经表现出极高的效率和准确性。然而,当面对复杂的业务场景时,…

660错题

不能局部求导,局部洛必达

Swift 中强大的 Key Paths(键路径)机制趣谈(上)

概览 小伙伴们可能不知道:在 Swift 语言中隐藏着大量看似“其貌不扬”实则却让秃头码农们“高世骇俗”,堪称卧虎藏龙的各种秘技。 其中,有一枚“不起眼”的小家伙称之为键路径(Key Paths)。如若将其善加利用&#xff…

Spring事务十种失效场景

首先我们要明白什么是事务?它的作用是什么?它在什么场景下在Spring框架下会失效? 事务:本质上是由数据库和程序之间交互的过程中的衍生物,它是一种控制数据的行为规则。有几个特性 1、原子性:执行单元内,要…

pjsip环境搭建、编译源码生成.lib库

使用平台: windows qt(5.15.2) vs(2019)x86 pjsip版本以及第三方库使用 pjsip 2.10 ffmpeg4.2.1 sdl2.0.12pjsip源码链接: https://github.com/pjsip/pjproject源码环境配置 首先创建两个文件夹,分别是include、lib其中include放置ff…

p2p、分布式,区块链笔记: 通过libp2p的Kademlia网络协议实现kv-store

Kademlia 网络协议 Kademlia 是一种分布式哈希表协议和算法,用于构建去中心化的对等网络,核心思想是通过分布式的网络结构来实现高效的数据查找和存储。在这个学习项目里,Kademlia 作为 libp2p 中的 NetworkBehaviour的组成。 以下这些函数或…

Java8 - Stream API 处理集合数据

Java 8的Stream API提供了一种功能强大的方式来处理集合数据,以函数式和声明式的方式进行操作。Stream API允许您对元素集合执行操作,如过滤、映射和归约,以简洁高效的方式进行处理。 下面是Java 8 Stream API的一些关键特性和概念&#xff…

windows安装Gitblit还是Bonobo Git Server

Gitblit 和 Bonobo Git Server 都是用于托管Git仓库的工具,但它们是基于不同平台的不同软件。 Gitblit 是一个纯 Java 写的服务器,支持托管 Git,Mercurial 和 SVN 仓库。它需要 Java 运行环境,适合在 Windows、Linux 和 Mac 平台…

Android 输入系统 InputStage

整体流程如上所说,简要归纳如下: 输入法之前的处理 输入法处理 输入法之后处理 综合处理 InputStage将输入事件的处理分成若干个阶段(Stage), 如果当前有输入法窗口,则事件处理从 NativePreIme 开始,否…

SpringBoot MongoTemplate使用详解

前面文章讲了 SpringBoot整合MongoDB JPA使用:https://blog.csdn.net/qq_42402854/article/details/139973336 在项目中,通常会 JPA语法与 MongoTemplate两者结合使用,特别是针对复杂动态条件查询时,MongoTemplate更加友好。 Spr…

主流国产服务器操作系统技术分析

主流国产服务器操作系统 信创 "信创",即信息技术应用创新,作为科技自立自强的核心词汇,在我国信息化建设的进程中扮演着至关重要的角色。自2016年起步,2020年开始蓬勃兴起,信创的浪潮正席卷整个信息与通信技…

GNeRF代码复现

https://github.com/quan-meng/gnerf 之前一直去复现这个代码总是文件不存在,我就懒得搞了(实际上是没能力哈哈哈) 最近突然想到这篇论文重新试试复现 一、按步骤创建虚拟环境安装各种依赖等 二、安装好之后下载数据,可以用Blen…

virtualbox+Ubuntu部分窗口显示错乱

如下图: 窗口标题显示错乱,跟一般乱码不一样。 解决办法: 在virtualbox设置中,显示选项卡,取消勾选启用3D加速 也可参考此链接:linux ubuntu 中vscode中央窗口显示出现异常/显示错误_开发工具-CSDN问答

打卡第一天

今天是参加算法训练营的第一天,希望我能把这个训练营坚持下来,希望我的算法编程题的能力有所提升,不再面试挂了,面试总是挂编程题,记录我leetcode刷题数量: 希望我通过这个训练营能够实现两份工作的无缝衔接…

自动化任务工具 -- zTasker v1.94 绿色版

软件简介 zTasker 是一款功能强大的自动化任务管理软件,以其简洁易用、一键式操作而著称。软件体积小巧,启动迅速,提供了超过100种任务类型和30多种定时/条件执行方法,能够满足用户在自动化方面的多样化需求。 zTasker 支持定时任…

从全连接到卷积

一、全连接到卷积 1、卷积具有两个原则: 平移不变性:无论作用在哪个部分,它都要有相同的作用,而不会随着位置的改变而改变 局部性:卷积核作用处,作用域应该是核作用点的周围一小部分而不作用于更大的部分 …

OBD诊断(ISO15031) 04服务

文章目录 功能简介ISO 9141-2、ISO 14230-4和SAE J1850的诊断服务定义1、清除/重置与排放相关的诊断信息请求消息定义2、请求与排放相关的DTC响应消息定义3、报文示例 ISO 15765-4的诊断服务定义1、请求与排放相关的DTC请求消息定义2、请求与排放相关的DTC响应消息定义3、否定响…

专题二:Spring源码编译

目录 下载源码 配置Gradle 配置环境变量 配置setting文件 配置Spring源码 配置文件调整 问题解决 完整配置 gradel.properties build.gradle settiings.gradel 在专题一: Spring生态初探中我们从整体模块对Spring有个整体的印象,现在正式从最…