当前位置: 首页 > news >正文

【数仓】zookeeper软件安装及集群配置

相关文章

  • 【数仓】基本概念、知识普及、核心技术
  • 【数仓】数据分层概念以及相关逻辑
  • 【数仓】Hadoop软件安装及使用(集群配置)
  • 【数仓】Hadoop集群配置常用参数说明

一、环境准备

准备3台虚拟机

  • Hadoop131:192.168.56.131
  • Hadoop132:192.168.56.132
  • Hadoop133:192.168.56.133

本例系统版本 CentOS-7.8,已安装jdk1.8

关闭防火墙

systemctl stop firewalld

二、zookeeper安装配置

1、zookeeper下载安装

1) 下载解压

# 下载
wget --no-check-certificate https://dlcdn.apache.org/zookeeper/zookeeper-3.9.1/apache-zookeeper-3.9.1-bin.tar.gz
# 解压安装
tar -xzvf apache-zookeeper-3.9.1-bin.tar.gzmv apache-zookeeper-3.9.1-bin/ /data/zookeeper/
#查看zookeeper是否部署成功;
ls -l /data/zookeeper/

2)配置服务器编号

创建数据存储目录 zkdata

mkdir /data/zookeeper/zkdata

在zkdata 目录创建文件 myid,在文件中添加与server对应的编号

131

3)配置zoo.cfg文件

zookeeper/conf目录下有zoo_sample.cfg实例配置文件,复制这个文件,重命名为zoo.cfg,开始配置zoo.cfg的内容

cp zoo_sample.cfg zoo.cfg
vi zoo.cfg

修改数据存储路径

dataDir=/data/zookeeper/zkdata

增加如下集群配置

############### cluster ###############
server.131=hadoop131:2888:3888
server.132=hadoop132:2888:3888
server.133=hadoop133:2888:3888

集群服务配置说明

server.A=B:C:D
A 是一个数字,表示这个是第几号服务器;
B 是这个服务器的IP地址(或者是与IP地址做了映射的主机名);
C 第一个端口用来集群成员的信息交换,表示这个服务器与集群中的Leader服务器交换信息的端口;
D 是在leader挂掉时专门用来进行选举leader所用的端口。

2、同步zookeeper到其他服务器

1)同步zookeeper到其他两台服务器 hadoop132、hadoop133

xsync.sh /data/zookeeper/

2)分别修改 hadoop132、hadoop133 上面的 myid 为 132、133

3、集群操作

方式一:分别在各个服务器操作

1)分别启动zookeeper

/data/zookeeper/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /data/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

2)查看状态

/data/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /data/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower

方式二:增加集群操作脚本 zk.sh

1)创建文件zk.sh

vi /usr/bin/zk.sh
# 修改文件权限
chmod 777 /usr/bin/zk.sh

2)复制如下内容

#!/bin/bash#1. 判断参数个数
if [ $# -lt 1 ]
thenecho Not Enough Arguement!exit;
ficase $1 in
"start")#遍历集群所有机器for host in hadoop131 hadoop132 hadoop133doecho --------------------  $host zookeeper 启动 --------------------ssh $host "/data/zookeeper/bin/zkServer.sh start"done
;;
"stop")#遍历集群所有机器for host in hadoop131 hadoop132 hadoop133doecho --------------------  $host zookeeper 停止 --------------------ssh $host "/data/zookeeper/bin/zkServer.sh stop"done
;;
"status")#遍历集群所有机器for host in hadoop131 hadoop132 hadoop133doecho --------------------  $host zookeeper 状态 --------------------ssh $host "/data/zookeeper/bin/zkServer.sh status"done
;;
*)echo "Input Args Error..."
;;
esac

3)通过集群脚本 zk.sh 操作

zk.sh start
-------------------- hadoop131 zookeeper 启动 --------------------
ZooKeeper JMX enabled by default
Using config: /data/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
-------------------- hadoop132 zookeeper 启动 --------------------
ZooKeeper JMX enabled by default
Using config: /data/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
-------------------- hadoop133 zookeeper 启动 --------------------
ZooKeeper JMX enabled by default
Using config: /data/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

三、ZooKeeper常见配置参数

ZooKeeper的配置参数主要包括以下几项:

  1. tickTime:ZooKeeper中的一个时间单元,用于服务器之间或客户端与服务器之间维持心跳。它是以毫秒为单位的,并且ZooKeeper中所有的时间都是以这个为基础进行整数倍的配置。例如,session的最小超时时间是2倍的tickTime。

  2. dataDir:存储快照的目录。这也是ZooKeeper服务器用来存储事务日志的默认位置(如果没有特别配置dataLogDir的话)。考虑到事务日志的写入性能会直接影响到ZooKeeper的整体性能,因此建议将事务日志存储在一个专门的、拥有良好I/O性能的磁盘上。

  3. dataLogDir:这个参数用于配置事务日志的存储目录。如果配置了这个参数,那么事务日志就会被存储在这个指定的目录中,而不是在dataDir中。这有助于优化磁盘I/O性能。

  4. clientPort:这是客户端连接ZooKeeper服务器的端口。一般来说,这个端口被设置为2181。

  5. initLimit:这是ZooKeeper集群中的Follower服务器与Leader服务器之间初始连接时能容忍的最多心跳数(以tickTime为单位)。这个参数用于控制ZooKeeper集群的初始化过程。

  6. syncLimit:这是ZooKeeper集群中的Follower服务器与Leader服务器之间请求和应答之间能容忍的最多心跳数(以tickTime为单位)。这个参数用于控制Follower和Leader之间的同步过程。

  7. maxClientCnxns:这是一个客户端连接到单个ZooKeeper服务器的最大连接数限制。这个参数可以防止ZooKeeper服务器因为过多的客户端连接而耗尽资源。

这些参数都可以在ZooKeeper的配置文件(zoo.cfg)中进行设置。在配置ZooKeeper集群时,还需要设置一些其他的参数,如server.x配置项,用于指定ZooKeeper集群中的服务器地址和端口等信息。

参考

  • https://zookeeper.apache.org/doc/current/index.html

相关文章:

【数仓】zookeeper软件安装及集群配置

相关文章 【数仓】基本概念、知识普及、核心技术【数仓】数据分层概念以及相关逻辑【数仓】Hadoop软件安装及使用(集群配置)【数仓】Hadoop集群配置常用参数说明 一、环境准备 准备3台虚拟机 Hadoop131:192.168.56.131Hadoop132&#xff…...

Qt 实现橡皮擦拭显示图片

1.简介 在一些游戏中看见类似解密破案的效果,使用手触摸去擦拭图片上的灰尘,然后显示最终的图片,所以也想试试Qt实现的效果。大家有自己想做的效果,都可以尝试。 以下是效果展示图。 可以控制橡皮擦的大小,进行擦拭…...

Vue3+Element-Plus中ELMessage样式丢失处理

Vu3Element-Plus项目中,element-plus使用按需引入有时会出现样式失效和在vscode中使用会报错[找不到名称“ElMessage”。ts(2304)]错误 ELMessage弹框样式丢失处理方法 使用按需引入就不能手动再引入 import { ElMessage } from "element-plus";ElMessage.success…...

97 spring 中的泛型类型注入

前言 呵呵 同样是 最近同事碰到的一个问题 他不太懂 英语, 看到的说明是 缺少一个 RedisTemplate 的实例, 但是找到了一个 RedisTemplate 的实例 呵呵 和我这里 spring 版本似乎是不太一样, 错误信息 有一些差异 以下环境基于 jdk8 spring-5.0.4-RELEASE 测试用例 BeanCon…...

C++设计模式

单例模式 单例模式保证一个类只能创建一个对象,并提供全局访问点。通常用于全局共享例如日志、数据库连接池等。 Lazy Initialization 优点:需要时才初始化,节省空间 缺点:线程不安全 class Singleton{ private:static Singlet…...

反向代购业务系统|无货源代购中国商品|反向海淘代购系统

什么是淘宝代购 淘宝代购是近年兴起的一种购物模式,是帮国外客户购买中国商品。主要是通过万邦科技的外贸代购模式,把淘宝、 天猫等电商平台的全站商品通过API接入到你的网站上,瞬间就可以架设一个有数亿产品的大型网上商城,而且…...

Linux 进程间通信

目录 管道 匿名管道(pipe) 有名管道(fifo) 小结 共享内存 消息队列 信号量 System V IPC的结构设计 Posix与System V的关系 管道 匿名管道(pipe) 我们知道,在Linux中通过fork创建的子…...

hippy 调试demo运行联调-mac环境准备篇

适用对于终端编译环境不熟悉的人看,仅mac端 hippy 调试文档官网地址 前提:请使用node16 联调预览效果图: 编译iOS Demo环境准备 未跑通,待补充 编译Android Demo环境准备 1、正常安装Android Studio 2、下载Android NDK&a…...

【golang】go module依赖的git tag被覆盖 如何处理 | 因测试产生大量的git tag 如何清除 最佳实践

一、场景 当我们把本地和远程git仓库的 tag全部删除,我们另外的项目依赖于这个被删除tag无法更新版本 如何处理? 如上图: 这里我创建了一个 v0.0.1 的tag,然后删除了这个tag,然后又创建了一个新的 v0.0.1的tag&#xf…...

Spring Cloud原理详解

Spring Cloud 是基于 Spring Boot 的微服务架构开发工具包,旨在帮助开发人员快速构建分布式系统中的一些常见模式,例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、领导选举、分布式会话和集群状态。Spring Cloud 是 Spring 生态系…...

力扣76. 最小覆盖子串(滑动窗口)

Problem: 76. 最小覆盖子串 文章目录 题目描述思路复杂度Code 题目描述 思路 1.定义两个map集合need和window(以字符作为键,对应字符出现的个数作为值),将子串t存入need中; 2.定义左右指针left、right均指向0&#xff…...

使用华为云云函数functiongraph

之前使用腾讯云serverless,但是突然开始收费了。所以改用functiongraph 首先登陆华为云。 目录 1.登录华为云 2.在控制台找到functiongraph并开通 3.添加依赖包: 3.1 制作依赖包 3.2引入依赖包 4.发送请求 4.1直接发送 4.1.1uri 4.1.2 请求头…...

Android logcat系统

一 .logcat命令介绍 android log系统: logcat介绍 : logcat是android中的一个命令行工具,可以用于得到程序的log信息. 二.C/Clogcat访问接口 Android系统中的C/C日志接口是通过宏来使用的。在system/core/include/android/log.h定义了日志的级别: /…...

android 使用协程CoroutineScope 实现定时器

满足延迟执行、立即执行,每次任务间隔时长,总时长的任务 使用1 class TimeViewModel:Viewmodel(){//测试延迟5秒开始执行任务,然后每隔1秒执行1次,总执行时间60秒fun testTime(){var startTime System.currentTimeMillis()log(…...

【algorithm】算法基础课---排序算法(附笔记 | 建议收藏)

🚀write in front🚀 📝个人主页:认真写博客的夏目浅石. 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 📣系列专栏:AcWing算法学习笔记 💬总结:希望你看完…...

UnityShader——09数学知识3

方阵 行与列数量相等的矩阵,n*n阶矩阵 对角矩阵 当对角线以外的矩阵内元素全为0,则称之为对角矩阵,对角矩阵的前提是必须是方阵 单位矩阵 对角线元素全为1,其余元素全为0,属于对角矩阵的一部分 矩阵和向量 把1 * n阶矩阵称…...

langchain学习笔记(九)

RunnableBranch: Dynamically route logic based on input | 🦜️🔗 Langchain 基于输入的动态路由逻辑,通过上一步的输出选择下一步操作,允许创建非确定性链。路由保证路由间的结构和连贯。 有以下两种方法执行路由 1、通过Ru…...

周处除三害在线资源最新电影1080p高清

打开下面这个链接就可以看到 周处除三害在线资源最新电影1080p高清 如果链接打不开,就复制下面的网址到浏览器打开 https://www.zhufaka.cn/liebiao/A09504AE3BF8BD06 用阿里云盘下载,下载完成之后,用迅雷播放 周处除三害在线资源最新电…...

STM32CubeIDE基础学习-新建STM32CubeIDE基础工程

STM32CubeIDE基础学习-新建STM32CubeIDE基础工程 前言 有开发过程序的朋友都清楚,后面开发是不需要再新建工程的,一般都是在初学时或者有特殊需要的时候才需要新建项目工程的。 后面开发都是可以在这种已有的工程上添加相关功能就行,只要前…...

R语言简介|你对R语言了解多少?

R语言是一种专门用于统计计算和图形展示的开源编程语言,它在数据科学领域有着广泛的应用。下面对R语言的环境、基础语法及注释进行解释: R语言环境 安装与配置 安装R语言通常可以从官方站点下载对应操作系统的安装包,如Windows、Linux、ma…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

关于easyexcel动态下拉选问题处理

前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...

MyBatis中关于缓存的理解

MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...