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

相关文章

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

一、环境准备

准备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 已安装,且已启动

二、kafka安装配置

1、kafka下载安装

# 下载解压
wget --no-check-certificate https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
tar -xzvf kafka_2.13-3.7.0.tgz
mv kafka_2.13-3.7.0/ /data/kafka/

2、配置环境变量

新增环境变量文件

vi /etc/profile.d/kafka_env.sh

export KAFKA_HOME=/data/kafka
export PATH=$PATH:$KAFKA_HOME/bin

使用source让新增环境生效

source /etc/profile

配置完成后分发到其他服务器

xsync.sh /etc/profile.d/kafka_env.sh

3、配置Kafka服务器属性

Kafka集群的配置涉及多个方面,包括broker、Zookeeper、producer和consumer的配置。不过,通常我们主要关注的是broker和Zookeeper的配置,因为它们是构成Kafka集群的基础。

Broker配置

Broker的配置主要在Kafka安装目录下的config/server.properties文件中进行。以下是一些关键的配置项:

  1. broker.id:每个Kafka broker都需要一个唯一的标识符,即broker.id。在集群中,每个broker的ID必须是唯一的。

  2. listeners:监听的网络端口和协议,用于客户端和其他brokers的连接。例如,listeners=PLAINTEXT://:9092表示监听本机9092端口,使用PLAINTEXT协议。

  3. log.dirs:Kafka存储数据的目录。可以配置多个目录以实现磁盘的负载均衡。例如,log.dirs=/data/kafka-logs

  4. num.partitions:创建新topic时的默认分区数。这个配置也可以在创建topic时通过命令行参数指定。

  5. offsets.topic.replication.factor:创建新topic时的默认副本因子。这个配置决定了topic的副本数,即数据在不同broker上的复制份数。

  6. zookeeper.connect:指定ZooKeeper集群的地址和端口。例如,zookeeper.connect=localhost:2181表示连接本机的Zookeeper实例,端口为2181。如果是ZooKeeper集群,可以配置多个地址,用逗号分隔。

vi /data/kafka/config/server.properties

主要配置参数如下:

#broker 的全局唯一编号,不能重复,只能是数字。broker.id=0
#broker 对外暴露的 IP 和端口 (每个节点单独配置)
advertised.listeners=PLAINTEXT://hadoop131:9092
#处理网络请求的线程数量
num.network.threads=3
#用来处理磁盘 IO的线程数量
num.io.threads=8
#发送套接字的缓冲区大小
socket.send.buffer.bytes=102400
#接收套接字的缓冲区大小
socket.request.max.bytes=104857600
#kafka运行日志(数据)存放的路径,路径不需要提前创建,kafka 自动帮你创建,可以配置多个磁盘路径,路径与路径之间可以用","分隔
log.dirs=/data/kafka/datas
#topic 在当前 broker 上的分区个数
num.partitions=1
#用来恢复和清理 data 下数据的线程数量
num.recovery.threads.per.data.dir=1
#每个 topic 创建时的副本数,默认时1个副本
offsets.topic.replication.factor=l
#segment 文件保留的最长时间,超时将被删除
log.retention.hours=168
#每个 segment 文件的大小,默认最大 1G
log.segment.bytes=1073741824
#检查过期数据的时间,默认5分钟检查一次是否数据过期
log.retention.check.interval.ms=300000
#配置连接 Zookeeper 集群地址(在 zk 根目录下创建/kafka,方便管理)
zookeeper.connect=hadoop131:2181,hadoop132:2181,hadoop133:2181/kafka

4、同步kafka到其他服务器

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

xsync.sh /data/kafka/

2)分别修改 hadoop132、hadoop133 上面的 broker.idadvertised.listeners

5、启动kafka

增加集群启动脚本

1)创建文件kafka.sh

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

2)复制如下内容

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

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

kafka.sh start
-------------------- hadoop131 kafka 启动 --------------------
-------------------- hadoop132 kafka 启动 --------------------
-------------------- hadoop133 kafka 启动 --------------------

使用xcall.sh jps -m查看进程,可以看见kafka进程已经启动

------ hadoop131 jps ------
4548 QuorumPeerMain
5781 Jps
5673 Kafka
------ hadoop132 jps ------
5560 Kafka
4458 QuorumPeerMain
5659 Jps
------ hadoop133 jps ------
5570 Kafka
5668 Jps
4463 QuorumPeerMain

6、通过命令测试kafka

1)发送消息

bin/kafka-console-producer.sh \--broker-list localhost:9092 \--topic my.kafka.broadcast# 或bin/kafka-console-producer.sh \--bootstrap-server localhost:9092 \--topic my.kafka.broadcast

--broker-list <broker地址>:<端口>:指定Kafka broker的地址和端口。与--bootstrap-server参数类似,但在新版本的Kafka中,更推荐使用--bootstrap-server
--topic <topic名称>:指定要发送消息的topic名称。

在你执行这个命令后,终端会等待你输入消息。你可以在终端中输入一行文本,然后按下Enter键来发送消息。
要结束消息发送,你可以通过按下Ctrl+D(在大多数Unix系统中)或Ctrl+Z(在Windows系统中)来终止输入。

2)接收消息

bin/kafka-console-consumer.sh \--bootstrap-server localhost:9092 \--topic my.kafka.broadcast \--from-beginning

--bootstrap-server <broker地址>:<端口>:指定Kafka broker的地址和端口。你可以使用逗号分隔多个broker地址,例如broker1:9092,broker2:9092。
--topic <topic名称>:指定要消费的topic名称。
--from-beginning:从topic的起始位置开始消费。如果不指定该参数,消费者将从最新的消息开始消费。
--consumer.config <消费者配置文件>:可选参数,用于指定消费者配置文件。你可以在配置文件中设置各种消费者属性,如消费者组ID、自动提交偏移量等。如果你不需要使用消费者组或自定义配置,可以忽略此参数。

执行上述命令后,你将在终端上看到从指定topic接收到的消息。
请注意,该命令将一直运行,直到你手动停止它(通常通过按下Ctrl+C来终止)

3)查询topic列表

bin/kafka-topics.sh --list --bootstrap-server localhost:9092

三、kafka常见配置项

Apache Kafka是一个流行的分布式事件流处理平台,它有很多配置项,用于优化和调整其性能、可靠性和安全性。以下是一些Kafka中常见的配置项:

Broker配置

  1. broker.id:每个Kafka broker都需要一个唯一的标识符,即broker.id
  2. log.dirs:Kafka存储数据的目录,可以配置多个目录以实现磁盘的负载均衡。
  3. listeners:监听的网络端口和协议,用于客户端和其他brokers的连接。
  4. num.partitions:创建新topic时的默认分区数。
  5. default.replication.factor:创建新topic时的默认副本因子。
  6. auto.create.topics.enable:是否允许自动创建topic。
  7. log.retention.hourslog.retention.byteslog.retention.minuteslog.retention.ms:控制日志数据的保留策略。
  8. log.segment.bytes:控制日志段的大小。
  9. zookeeper.connect:指定ZooKeeper集群的地址。

Producer配置

  1. bootstrap.servers:Kafka集群的地址列表。
  2. key.serializer:用于序列化key的类。
  3. value.serializer:用于序列化value的类。
  4. acks:控制发送消息的确认机制。
  5. retries:发送失败时的重试次数。
  6. batch.size:控制批量发送的大小。
  7. linger.ms:发送批量消息前的等待时间。
  8. buffer.memory:生产者用于缓存的内存大小。

Consumer配置

  1. group.id:消费者组的标识符。
  2. bootstrap.servers:Kafka集群的地址列表。
  3. key.deserializer:用于反序列化key的类。
  4. value.deserializer:用于反序列化value的类。
  5. auto.offset.reset:当没有初始化的offset或offset不再存在时,应该做什么。
  6. enable.auto.commit:是否允许自动提交offset。
  7. fetch.min.bytesfetch.max.bytes:控制从broker获取数据的最小和最大字节数。
  8. max.poll.records:每次poll操作返回的最大记录数。

以上只是Kafka配置的一部分,实际上Kafka的配置项非常多,可以根据具体的需求和场景进行调整。具体的配置项和使用方法可以参考Kafka的官方文档。

请注意,配置项的默认值可能会随着Kafka版本的更新而发生变化,因此建议查阅对应版本的官方文档以获取最准确的信息。

参考

  • https://kafka.apache.org/quickstart

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

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

相关文章

O2O:Offline–Online Actor–Critic

IEEE TAI 2024 paper 1 Introduction 一篇offline to online 的文章&#xff0c;有效解决迁移过程出现的performance drop。所提出的O2AC算法首先在离线阶段添加一项BC惩罚项&#xff0c;用于限制策略靠近专家策略&#xff1b;而在在线微调阶段&#xff0c;通过动态调整BC的权…

【STM32F103】WDG看门狗

本系列在之前介绍时钟树的文章中有稍微提一下看门狗WDG&#xff08;Watch Door Dog&#xff09;。 简单来说&#xff0c;可以当成是一个计数器&#xff0c;一旦这个计数器溢出则单片机复位。因为我们需要每隔一段时间就把这个计数器的值清零&#xff08;喂狗&#xff09;。 I…

并发编程并发安全性之Lock锁及原理分析

ReentrantLock 用途:锁是用来解决线程安全问题的 重入锁-> 互斥锁 满足线程的互斥性意味着同一个时刻&#xff0c;只允许一个线程进入到加锁的代码中。多线程环境下&#xff0c;满足线程的顺序访问 锁的设计猜想 一定会涉及到锁的抢占&#xff0c;需要有一个标记来实现互…

C#不可识别的数据库格式解决方法

1.检查数据库文件路径和文件名&#xff1a; 确保指定的路径和文件名拼写正确&#xff0c;而且文件确实存在于指定的位置。使用绝对路径或相对路径都是可行的&#xff0c;但要确保路径的正确性 string connectionString "ProviderMicrosoft.ACE.OLEDB.12.0;Data SourceE:…

数字人解决方案——阿里EMO音频驱动肖像生成能说话能唱歌的逼真视频

前言 数字可以分为3D数字人和2D数字人。3D数字人以虚幻引擎的MetaHuman为代表&#xff0c;而2D数字人则现有的图像或者视频做为输入&#xff0c;然后生成对口型的数字人&#xff0c;比如有SadTalker和Wav2Lip。 SadTalker&#xff1a;SadTalker是一种2D数字人算法&#xff0c;…

MySQL面试题-参考回答

MySQL 面试题 面试官&#xff1a;MySQL中&#xff0c;如何定位慢查询? 候选人&#xff1a; 嗯 ~ &#xff0c;我们当时做压测的时候有的接口非常的慢&#xff0c;接口的响应时间超过了 2 秒以上&#xff0c;因为我们当时的系统部署了运维的监控系统Skywalking &#xff0c;…

Lichee Pi 4A:RISC-V架构的开源硬件之旅

一、简介 Lichee Pi 4A是一款基于RISC-V指令集的强大Linux开发板&#xff0c;它凭借出色的性能和丰富的接口&#xff0c;吸引了众多开发者和爱好者的关注。这款开发板不仅适用于学习和研究RISC-V架构&#xff0c;还可以作为软路由、小型服务器或物联网设备的核心组件。 目录 一…

Java 反射详解:动态创建实例、调用方法和访问字段

“一般情况下&#xff0c;我们在使用某个类之前已经确定它到底是个什么类了&#xff0c;拿到手就直接可以使用 new 关键字来调用构造方法进行初始化&#xff0c;之后使用这个类的对象来进行操作。” Writer writer new Writer(); writer.setName("少年");像上面这个…

Java生成 word报告

Java生成 word报告 一、方案比较二、Apache POI 生成三、FreeMarker 生成 在网上找了好多天将数据库信息导出到 word 中的解决方案&#xff0c;现在将这几天的总结分享一下。总的来说&#xff0c;Java 导出 word 大致有 5 种。 一、方案比较 1. Jacob Jacob 是 Java-COM Bri…

MATLAB的基础二维绘图

1.plot函数 &#xff08;1&#xff09;plot函数的基本用法 plot(x,y)其中&#xff0c;x和y分别用于存储x坐标和y坐标数据&#xff0c;通常x和y为长度相同的向量。 例如&#xff1a; x[2.3,3.3,4.3,1];y[1.3,2,1.8,3]plot(x,y) (2)plot(x,y,选项&#xff09;其中选项包括颜色…

(C语言)sizeof和strlen的对比(详解)

sizeof和strlen的对⽐&#xff08;详解&#xff09; 1. sizeof sizeof是用来计算变量所占内存空间大小的&#xff0c; 单位是字节&#xff0c;如果操作数是类型的话&#xff0c;计算的是用类型创建的变量所占空间的大小。 sizeof 只关注占用内存空间的大小 &#xff0c;不在乎内…

Linux——网络基础

计算机网络背景 网络发展 独立模式: 计算机之间相互独立 在早期的时候&#xff0c;计算机之间是相互独立的&#xff0c;此时如果多个计算机要协同完成某种业务&#xff0c;那么就只能等一台计算机处理完后再将数据传递给下一台计算机&#xff0c;然后下一台计算机再进行相应…

CSS 常见属性设置

一. 文本属性 1.1. 装饰线 text-decoration text-decoration有如下常见取值: none&#xff1a;无任何装饰线&#xff08;可以去除a元素默认的下划线&#xff09;underline&#xff1a;下划线overline&#xff1a;上划线line-through&#xff1a;中划线&#xff08;删除线&…

YOLOv9推理详解及部署实现

目录 前言零、YOLOv9简介一、YOLOv9推理(Python)1. YOLOv9预测2. YOLOv9预处理3. YOLOv9后处理4. YOLOv9推理 二、YOLOv9推理(C)1. ONNX导出2. YOLOv9预处理3. YOLOv9后处理4. YOLOv9推理 三、YOLOv9部署1. 源码下载2. 环境配置2.1 配置CMakeLists.txt2.2 配置Makefile 3. ONNX…

软件设计师9--总线/可靠性/性能指标

软件设计师9--总线/可靠性/性能指标 考点1&#xff1a;总线总线的分类例题&#xff1a; 考点2&#xff1a;可靠性系统可靠性分析--可靠性指标串联系统与并联系统N模混合系统例题&#xff1a; 性能指标例题&#xff1a; 考点1&#xff1a;总线 一条总线同一时刻仅允许一个设备发…

Stable Diffusion 模型分享:CG texture light and shadow(CG纹理光影)

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 一个拥有cg质感和光影的融合模型&#xff0c;偏2.5D 条目内容类型大模型基础模型SD 1.5来…

Spring Authorization Server简介

Spring Authorization Server 是Spring Security的一个重要扩展&#xff0c;它提供了一种实现OAuth 2.0和OpenID Connect (OIDC)的标准方式。随着微服务架构的普及&#xff0c;安全性成为了软件开发中的一个重要方面。Spring Authorization Server旨在提供一种灵活、可扩展且易…

2024 最火的技术话题

在2024年&#xff0c;许多技术话题都备受关注&#xff0c;其中一些最火的话题包括&#xff1a; 1.生成式人工智能&#xff1a; 生成式人工智能是当前最热门的技术话题之一。它使机器能够创造类似于人类创作的内容&#xff0c;从而给各个行业带来了革命性的变化。生成式人工智…

HTML+CSS+BootStrap游乐园官网

一、技术栈 支持pc、pad、手机访问&#xff0c;页面自适应&#xff01;&#xff01; html5cssbootstrapjs 二、项目截图 接受项目定制&#xff0c;站内联系博主&#xff01;&#xff01;&#xff01;

Armadillo:矩阵类、向量类、Cube类和泛型类

文章目录 矩阵类、向量类、Cube类和泛型类Mat<type>matcx_matCol<type>veccx_vecRow<type>rowveccx_rowvecCube<type>cubecx_cubefield<object_type>SpMat<type>