当前位置: 首页 > 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
http://www.lryc.cn/news/311408.html

相关文章:

  • Qt 实现橡皮擦拭显示图片
  • Vue3+Element-Plus中ELMessage样式丢失处理
  • 97 spring 中的泛型类型注入
  • C++设计模式
  • 反向代购业务系统|无货源代购中国商品|反向海淘代购系统
  • Linux 进程间通信
  • hippy 调试demo运行联调-mac环境准备篇
  • 【golang】go module依赖的git tag被覆盖 如何处理 | 因测试产生大量的git tag 如何清除 最佳实践
  • Spring Cloud原理详解
  • 力扣76. 最小覆盖子串(滑动窗口)
  • 使用华为云云函数functiongraph
  • Android logcat系统
  • android 使用协程CoroutineScope 实现定时器
  • 【algorithm】算法基础课---排序算法(附笔记 | 建议收藏)
  • UnityShader——09数学知识3
  • langchain学习笔记(九)
  • 周处除三害在线资源最新电影1080p高清
  • STM32CubeIDE基础学习-新建STM32CubeIDE基础工程
  • R语言简介|你对R语言了解多少?
  • Android的硬件接口HAL
  • 【js】数组的常用方法
  • 08. Nginx进阶-Nginx动静分离
  • RPC--一起学习吧之架构
  • 服务器后端是学习java还是php
  • DCFL: for Oriented Tiny Object Detection
  • 代码学习记录11
  • 【LeetCode】第 387 场周赛
  • 基于 Vue3打造前台+中台通用提效解决方案(下)
  • Topaz Video AI:一键提升视频品质,智能重塑影像魅力 mac/win版
  • 高效办公软件中哪个提醒待办事项更有效