基于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.mfbz.cn/a/768325.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python sklearn机械学习-数据预处理

🌈所属专栏:【机械学习】✨作者主页: Mr.Zwq✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询! 您…

C++: 左值引用和右值引用

目录 概念: 理解: 左值引用,右值引用 左值引用能否给右值取别名? 右值引用能否给左值取别名? 引用的意义是什么? 左值和右值对自定义类型有什么区别吗? move的妙用! 没有优化…

统计信号处理基础 习题解答11-13

题目 如果是一个2x1的随机矢量,具有PDF 证明的PDF是一个随机变量。提可以因式分解成,其中是一个在4.5节描述的白化变换。 解答 首先: 因此,存在: 也就是是Hermitian矩阵。详细的性质可以参考: https://z…

Git使用[推送大于100M的文件后解救办法]

推送大于100M的文件后解救办法 本文摘录于:https://blog.csdn.net/u012150602/article/details/122687435只是做学习备份之用,绝无抄袭之意,有疑惑请联系本人! 当有文件大于100M的时候在提交的时候没有问题,但是在push的似乎就不行…

电影院售票管理系统(小白)大佬求解

最近在写一个关于电影院售票管理系统的sm项目,但是在买票的环节出现了问题及点击选座购票,没有数据渲染出来,我不知道什么情况,所以问问。有没有大佬可以帮我解决这个问题?下面是我的。控制层,服务层&#…

学校考场电子钟除了报时,还能做什么?-讯鹏时钟

在学校考场中,电子钟的存在似乎已经司空见惯,大多数人仅仅将其视为报时的工具。然而,学校考场电子钟的作用远不止于此,它具备众多优势和丰富的功能。 学校考场电子钟能够提供精准的时间参考,这是其最基础也是最关键的功…

Qt:5.QWidget属性介绍(Enabled属性-控件可用性设置、geometry属性-控件位置/大小设置)

目录 一、 QWidget属性的介绍: 二、Enabled属性-控件可用性设置: 2.1Enabled属性的介绍: 2.2获取控件当前可用状态的api——isEnabled(): 2.3设置控件当前的可用状态的api—— setEnabled() : 2.4 实例&#xff…

第二十一章 网络编程

​ 一、网络的相关概念 1. 网络通信 (1)网络通信:将 数据 通过网络从一台设备传输到另一台设备 (2)java.net 包下提供了一系列的类或接口,完成网络通信 2. 网络 概念:两台或多台设备通过一定…

VideoLLaMA 2:多模态视频理解新突破,音频理解能力再升级,挑战 GPT-4V

前言 近年来,人工智能技术飞速发展,尤其是大模型的出现,为视频理解和生成领域带来了前所未有的机遇。然而,现有的视频大模型(Video-LLM)在处理视频中复杂的时空信息和音频信息方面仍存在不足,例…

基于矩阵分解算法的评分预测实现---信息检索课设以及所涉及的深度学习原理

一、实验环境 Windows,Python 3 Python作为主要编程语言,使用Python的Pandas、NumPy、Matplotlib等库 二、实验内容 主要任务 查阅相关资料,了解矩阵分解算法的基本概念、应用场景及其难点。重点了解SVD(Singular Value Decomposition,奇异值分解)系列方法。掌握Pyth…

Python特征工程 — 1.4 特征归一化方法详解

目录 1 Min-Max归一化 方法1:自定义的Min-Max归一化封装函数 方法2: scikit-learn库中的MinMaxScaler 2 Z-score归一化 方法1:自定义的Z-score归一化封装函数 方法2: scikit-learn库中的StandardScaler 3 最大值归一化 4 L…

嵌入式c语言3——自定义数据类型

结构体struct,共用体union 结构体中定义变量,首尾地址相连 对于union,其包含变量对起始地址相同 由于其起始地址相同,则改变其中某一变量值时有可能使得另一个变量值发生改变 enum 枚举,可以用来定义一堆整形常量构成…

AzureDataFactory Dataverse connector自动处理了分页问题(单次查询上限5000条的限制)

众所周知,在用fetch执行D365的查询时,单次的查询是5000条,如果超过5000条则需要自己处理分页,添加额外的处理逻辑,但在ADF中,Dataverse connector已经自动处理了分页,我们可以很简单的做个POC. …

昇思25天学习打卡营第05天 | 数据变换 Transforms

昇思25天学习打卡营第05天 | 数据变换 Transforms 文章目录 昇思25天学习打卡营第05天 | 数据变换 TransformsCommon TransformsCompose Vision TransformsText TransformPythonTokenizerLookup Lambda Transforms数据处理模式Pipeline模式Eager模式 总结打卡 通常情况下的原始…

巴图制自动化Profinet协议转Modbus协议模块连接PLC和电表通信

1、免编写Modbus轮询程序实现PLC与电表通信的方法 在智能化时代,工业自动控制中的PLC和电表之间的通信是一个常见的需求。传统上,为了使PLC与电表通信,通常需要编写Modbus查询程序来读取和控制数据。然而,使用 巴图制自动化Prof…

(十二)纹理和采样

纹理 在绘制三角形的过程中,将图片贴到三角形上进行显示的过程,就是纹理贴图的过程 uv坐标 如果如果图片尺寸和实际贴图尺寸不一致,就会导致像素不够用了的问题 纹理与采样 纹理对象(Texture):在GPU端,用来以一…

安全隔离上网的有效途径:沙箱

在数字化浪潮日益汹涌的今天,网络安全成为了不可忽视的重要议题。沙箱技术作为一种高效的隔离机制,为企业和个人提供了一种在享受网络便利的同时,保障系统安全的解决方案。本文旨在深入探讨沙箱技术如何做到隔离上网,从而为用户提…

(五十二)第 8 章 动态存储管理(边界标识法)

1. 背景说明 2. 示例代码 1) errorRecord.h // 记录错误宏定义头文件#ifndef ERROR_RECORD_H #define ERROR_RECORD_H#include <stdio.h> #include <string.h> #include <stdint.h>// 从文件路径中提取文件名 #define FILE_NAME(X) strrchr(X, \\) ? strr…

QT创建地理信息shp文件编辑器shp_editor

空闲之余创建一个简单的矢量shp文件编辑器&#xff0c;加深对shp文件的理解。 一、启动程序 二、打开shp文件 三、显示shp文件的几何图形 四、双击右边表格中的feature&#xff0c;主窗体显示选中feature的各个节点。 五、鼠标在主窗体中选中feature的节点&#xff0c;按鼠标左…

js学习--制作选项卡

选项卡制作 <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><style>.text_one {width: 11.4%;height: 200px…