阶段三:项目开发---大数据开发运行环境搭建:任务2:安装配置ZooKeeper

任务描述

知识点:安装配置ZooKeeper

重  点: 安装配置ZooKeeper

难  点:无

内  容

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

因为在项目中会使用到HBase,所以需要安装ZooKeeper。HBase是一个开源的、分布式的NoSQL数据库,它建立在Hadoop分布式文件系统(HDFS)之上。HBase具有高可靠性、高可扩展性、高性能等特点,它适合于存储和处理大规模数据。而ZooKeeper是一个分布式的协调服务,它能够提供分布式系统中的一致性和可靠性支持。在HBase中,ZooKeeper负责协调HBase集群中所有RegionServer的状态、负载均衡以及Master的选举等任务。因此,ZooKeeper在HBase中扮演了一个非常重要的角色,它确保了HBase集群的稳定性和可靠性。

任务主要内容为:ZooKeeper下载安装,环境变量的修改,配置ZooKeeper。

任务指导

1、安装ZooKeeper集群的主要步骤

  • 同时在node1、node2、node3三个节点上安装ZooKeeper;
  • 分别在node1、node2、node3三个节点上配置用户环境变量;
  • 分别在node1、node2、node3三个节点上修改ZooKeeper的配置文件;
  • 分别在node1、node2、node3三个节点上创建ZooKeeper的数据存储目录和日志存储目录;
  • 分别在node1、node2、node3三个节点上创建的ZooKeeper的数据存储目录中创建myid文件;
  • 分别在node1、node2、node3三个节点上启动ZooKeeper;

2、常见问题

  • 如果启动报类似异常:QuorumCnxManager@384] - Cannot open channel to 2 at election address slave-02/192.168.0.178:3888 

该异常是可以忽略的,因为该服务启动时会尝试连接所有节点,而其他节点尚未启动。通过后面部分可以看到,集群在选出一个Leader后,最后稳定 了。其他结点可能也出现类似问题,属于正常。

  • 如果不关闭防火墙,客户端使用API操作HDFS以及ZooKeeper,可能就会出现下面常见的两种异常:

API操作HDFS时会出现异常:java.net.NoRouteToHostException: No route to host

API操作ZK时会出现异常:org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for xxxx

  • 关闭防火墙。在Hadoop集群环境(linux系统)中最好关闭防火墙,不然会出现很多问题,例如namenode找不到datanode等。

使用root权限登陆后,输入关闭防火墙命令(在所有节点执行以下操作):

# systemctl stop firewalld
# systemctl disable firewalld

任务实现

1. 安装配置ZooKeeper

在node1节点上,进入/opt/software/目录(此目录是为实验提供的安装软件所在目录,如果没有请自行到官方网站下载):

[root@node1 ~]# cd /opt/software/

  • 首先在node1节点安装ZooKeeper,解压ZooKeeper安装包:
[root@node1 software]# tar -zxvf /opt/software/zookeeper-3.4.13.tar.gz -C /opt/module

2. 配置用户环境变量

  • 使用【vi /etc/profile】打开配置文件,增加如下内容:
export ZK_HOME=/opt/module/zookeeper-3.4.13
export PATH=$PATH:$ZK_HOME/bin

  • 使修改的环境变量生效
[root@node1 software]# source /etc/profile

  • 将/etc/profile拷贝到其它所有机器上
[root@node1 software]# scp -rq /etc/profile node2:/etc/
[root@node1 software]# scp -rq /etc/profile node3:/etc/
  • 并在node2、node3执行【source /etc/profile】使环境变量生效

3. 配置ZooKeeper

  • 在node1节点上,修改ZooKeeper的配置文件
[root@node1 software]# cd $ZK_HOME/conf/
[root@node1 conf]# cp zoo_sample.cfg zoo.cfg
[root@node1 conf]# vi zoo.cfg
  • 将zoo.cfg文件修改成如下内容:
# 客户端心跳时间(毫秒)
tickTime=2000
# 允许心跳间隔的最大时间
initLimit=10
# 同步时限
syncLimit=5
# 数据存储目录
dataDir=/opt/module/zookeeper-3.4.13/data
# 数据日志存储目录
dataLogDir=/opt/module/zookeeper-3.4.13/data/log
# 端口号
clientPort=2181
# 集群节点和服务端口配置
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
# 以下为优化配置
# 服务器最大连接数,默认为10,改为0表示无限制
maxClientCnxns=0
# 快照数
autopurge.snapRetainCount=3
# 快照清理时间,默认为0
autopurge.purgeInterval=1
  • 创建ZooKeeper的数据存储目录和日志存储目录
[root@node1 conf]# cd ../
[root@node1 zookeeper-3.4.13]# mkdir -p /opt/module/zookeeper-3.4.13/data
[root@node1 zookeeper-3.4.13]# mkdir -p /opt/module/zookeeper-3.4.13/data/log
  • 在data目录中创建一个文件myid,输入内容为1
[root@node1 zookeeper-3.4.13]# echo "1" > data/myid
  • 修改ZooKeeper的日志输出路径
[root@node1 zookeeper-3.4.13]# vi bin/zkEnv.sh
  • 修改内容如下:
if [ "x${ZOO_LOG_DIR}" = "x" ]
then
   ZOO_LOG_DIR="$ZK_HOME/logs"
fi
if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
   ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
fi

  • 修改ZooKeeper的日志配置文件
[root@node1 zookeeper-3.4.13]# vi conf/log4j.properties
  • 修改内容如下:
zookeeper.root.logger=INFO,ROLLINGFILE

  • 创建日志目录
[root@node1 zookeeper-3.4.13]# mkdir /opt/module/zookeeper-3.4.13/logs
  • 在node1中将zookeeper目录复制到其它节点
[root@node1 zookeeper-3.4.13]# scp -rq /opt/module/zookeeper-3.4.13 node2:/opt/module
[root@node1 zookeeper-3.4.13]# scp -rq /opt/module/zookeeper-3.4.13 node3:/opt/module
  • 在node2中修改data目录中的myid文件
[root@node2 ~]# rm -rf /opt/module/zookeeper-3.4.13/data/myid
[root@node2 ~]# echo "2" > /opt/module/zookeeper-3.4.13/data/myid
  • 在node3中修改data目录中的myid文件
[root@node3 ~]# rm -rf /opt/module/zookeeper-3.4.13/data/myid
[root@node3 ~]# echo "3" > /opt/module/zookeeper-3.4.13/data/myid

4. Zookeeper启动,测试

  • 分别在node1、node2、node3节点上启动ZooKeeper服务
[root@node1 ~]# zkServer.sh start
[root@node2 ~]# zkServer.sh start
[root@node3 ~]# zkServer.sh start
  • 分别在node1、node2、node3节点上查看状态
[root@node1 ~]# zkServer.sh status
[root@node2 ~]# zkServer.sh status
[root@node3 ~]# zkServer.sh status

  • 如果要关闭ZooKeeper服务,可以分别在三个节点上使用关闭命令。这里不要执行关闭命令,后面安装Kafka和HBase会用到ZooKeeper集群。
# zkServer.sh stop

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

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

相关文章

IT之家最新科技热点 | 小米 AI 研究院开创多模态通用模型

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

一.2.(3)放大电路的图解分析方法和微变等效电路分析方法;

放大电路的主要分析方法:图解法、微变等效电路法 这里以共射放大电路为例 (1) 图解法: 1.静态分析 首先确定静态工作点Q,然后根据电路的特点,做出直流负载线,进而画出交流负载线,最后,画出各极电流电压的波形。求出最大不失真输出电压。 估算IBQ,然后根据数据手册里…

二分查找2

1. 山脉数组的峰顶索引&#xff08;852&#xff09; 题目描述&#xff1a; 算法原理&#xff1a; 根据题意我们可以将数组分为两个部分&#xff0c;一个部分是arr[mid-1]<arr[mid]&#xff0c;另一个部分为arr[mid-1]>arr[mid]&#xff0c;此时不难发现我们可以将二分…

U.S.News发布全美最佳本科AI专业排名

10 加州大学圣迭戈分校 University of California, San Diego UCSD的人工智能项目从事广泛的理论和实验研究&#xff0c;学校的优势领域包括机器学习、不确定性下的推理和认知建模。除了理论学习&#xff0c;UCSD教授非常注重把计算机知识运用到自然语言处理、数据挖掘、计算…

从模拟到预测,从智能到智慧:数字孪生技术在水库管理中的应用演变,推动水利行业向更高层次的智慧化迈进

目录 引言 一、数字孪生技术概述 二、数字孪生技术在水库管理中的应用演变 1. 从模拟到预测&#xff1a;构建精准的数字孪生模型 2. 从智能到智慧&#xff1a;实现全面感知与精准控制 3. 推动公众参与与透明化管理 三、数字孪生技术推动水利行业向更高层次的智慧化迈进 …

密室逃脱——收集版修改测试

一、原版修改 1、导入资源 Unity Learn | 3D Beginner: Complete Project | URP 2、设置Scene 删除SampleScene&#xff0c;打开UnityTechnologies-3DBeginnerComplete下的MainScene 3、降低音量 (1) 打开Hierarchy面板上的Audio降低音量 (2) 打开Prefabs文件夹&#xf…

推荐3款【王炸级别】的效率软件,免费无广告,你一定要收藏

Temp Cleaner Temp Cleaner 是一款专为 Windows 操作系统设计的临时文件清理工具。它的主要功能是安全且快速地清理磁盘上的临时文件和系统缓存&#xff0c;从而释放磁盘空间。该软件体积小巧&#xff08;仅有826KB&#xff09;&#xff0c;并且是无广告的绿色软件&#xff0c;…

智能交通(3)——Learning Phase Competition for Traffic Signal Control

论文分享 https://dl.acm.org/doi/pdf/10.1145/3357384.3357900https://dl.acm.org/doi/pdf/10.1145/3357384.3357900 论文代码 https://github.com/gjzheng93/frap-pubhttps://github.com/gjzheng93/frap-pub 摘要 越来越多可用的城市数据和先进的学习技术使人们能够提…

初学Spring之 AOP 面向切面编程

AOP&#xff08;Aspect Oriented Programming&#xff09;面向切面编程 通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术 是面向对象&#xff08;OOP&#xff09;的延续 AOP 在 Spring 中的作用&#xff1a; 1.提供声明式事务 2.允许用户自定义切面 导…

Java 基础--File - IO流(2)

I/O流 定义 数据从硬盘流向内存为输入流&#xff0c;数据从内存流向硬盘为输出流。输入也叫读取数据&#xff0c;输出也叫写出数据。 IO分类 1.按照数据的流向分为&#xff1a;输入流和输出流 ①输入流&#xff1a;把数据从其他设备上读取到内存中的流 ②输出流&#xff1…

pdf怎么转换成图片格式文件,pdf文档怎么转换成图片格式

在数字化时代&#xff0c;pdf文件转换成图片格式是一种常见的操作&#xff0c;无论是在工作还是日常生活中&#xff0c;我们总会遇到需要将pdf文件转换为图片的需求。这可能是因为图片格式更易于分享、展示或编辑。那么&#xff0c;如何高效地将pdf转换成图片呢&#xff1f;本文…

240705_昇思学习打卡-Day17-基于 MindSpore 实现 BERT 对话情绪识别

240705_昇思学习打卡-Day17-基于 MindSpore 实现 BERT对话情绪识别 近期确实太忙&#xff0c;此处仅作简单记录&#xff1a; 模型简介 BERT全称是来自变换器的双向编码器表征量&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;&#xff0c…

#数据结构 顺序表

线性表 顺序表 每种结构都有它存在意义 线性表的顺序存储实现指的是用一组连续的存储单元存储线性表的数据元素。 概念 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性表&#xff0c;一般情况下采用数组存储。在数组上完成数据的增查改删。 逻辑结构&#…

阶段三:项目开发---大数据开发运行环境搭建:任务8:安装配置Redis

任务描述 知识点&#xff1a;安装配置Redis 重 点&#xff1a; 安装配置Redis 难 点&#xff1a;无 内 容&#xff1a; Redis&#xff08;Remote Dictionary Server )&#xff0c;即远程字典服务&#xff0c;是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可…

数据结构1:C++实现变长数组

数组作为线性表的一种&#xff0c;具有内存连续这一特点&#xff0c;可以通过下标访问元素&#xff0c;并且下标访问的时间复杂的是O(1)&#xff0c;在数组的末尾插入和删除元素的时间复杂度同样是O(1)&#xff0c;我们使用C实现一个简单的边长数组。 数据结构定义 class Arr…

【手写数据库内核组件】01 解析树的结构,不同类型的数据结构组多层的链表树,抽象类型统一引用格式

不同类型的链表 ​专栏内容&#xff1a; postgresql使用入门基础手写数据库toadb并发编程 个人主页&#xff1a;我的主页 管理社区&#xff1a;开源数据库 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 文章目录 不同类型…

图像基础知识

图像卷积 卷积(convolution)是通过两个函数f和g生成第三个函数的一种数学算子,表征函数f与g经过翻转和平移的重叠部分的面积。 卷积概念是两个变量在某范围内相乘后求和的结果。图像处理中的卷积概念:数字图像是一个二维的离散信号,对数字图像做卷积操作其实就是利用卷积…

【帧中继实验-ensp】

实验要求 在R1上开启一个点对点子接口&#xff0c;用于连接 R1–R2&#xff0c;两端IP地址为12.1.1.x 。开启一个多点子接口 &#xff0c;用于连接R1–R3&#xff0c;R4&#xff0c;两段IP地址为134.1.1.x。 具体DLCI分配和映射关系如下&#xff1a; R1 102 R2 201—动态映射…

华为OD机试 - 来自异国的客人(Java 2024 D卷 100分)

华为OD机试 2024D卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;D卷C卷A卷B卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测…

使用Github Actions自建Docker镜像仓库

使用Github Actions自建Docker镜像仓库 背景使用Github Actions自建Docker镜像仓库fork项目[docker_image_sync](https://github.com/xqxyxchy/docker_image_sync)获取云厂商容器镜像服务信息配置github secrets运行github action配置需要同步的镜像同步后效果华为云配置 背景 …