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

【数仓】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

三、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

相关文章:

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

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

代码随想录 二叉树第三周

目录 404.左叶子之和 513.找树左下角的值 112.路径总和 106.从中序与后序遍历构造二叉树 105.从前序与中序遍历序列构造二叉树 654.最大二叉树 404.左叶子之和 404. 左叶子之和 简单 给定二叉树的根节点 root ,返回所有左叶子之和。 示例 1: 输…...

flask流式输出-SSE服务

一、定义 flask demo前端遇到的问题 二、实现 flask demo from gevent import monkey monkey.patch_all() #并行 import time from flask import Response, stream_with_context from flask import Flask from gevent.pywsgi import WSGIServer from flask import …...

注解整理ing

注解 1. 实体类注解 Data注解是lombok.jar包下的注解,该注解通常用在实体bean上,不需要写出set和get方法 Data相当于Getter Setter RequiredArgsConstructor ToString EqualsAndHashCode这5个注解的合集 EqualsAndHashCode注解会生成equals(Object oth…...

Android 将图片网址url转化为bitmap

1. 图片网址url转化为bitmap 1.1. 方法一 通过 HttpURLConnection 请求 要使用一个线程去访问,因为是网络请求,这是一个一步请求,不能直接返回获取,要不然永远为null,在这里得到BitMap之后记得使用Hanlder或者EventBu…...

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:颜色渐变)

设置组件的颜色渐变效果。 说明: 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 linearGradient linearGradient(value: { angle?: number | string; direction?: GradientDirection; colors: Array; repea…...

腾讯云幻兽帕鲁游戏存档迁移教程,本地单人房迁移/四人世界怎么迁移存档?

腾讯云幻兽帕鲁游戏存档迁移的方法主要包括以下几个步骤: 登录轻量云控制台:首先,需要登录到轻量云控制台,这是进行存档迁移的前提条件。在轻量云控制台中,可以找到接收存档的服务器卡片,并点击进入实例详情…...

C2_W2_Assignment_吴恩达_中英_Pytorch

Neural Networks for Handwritten Digit Recognition, Multiclass In this exercise, you will use a neural network to recognize the hand-written digits 0-9. 在本次练习中,您将使用神经网络来识别0-9的手写数字。 Outline 1 - Packages 2 - ReLU Activatio…...

C语言实现航班管理

航班管理系统&#xff0c;用C语言实现&#xff0c;可以作为课程设计&#xff0c;代码如下&#xff1a; #include<iostream> #include<fstream> #include<vector> #include<string> #include<stdlib.h> using namespace std; //信息基类 clas…...

【Java面试题】SpringBoot与Spring的区别

主要区别体现几个方面&#xff1a; 1.操作简便性 SpringBoot提供极其快速和简化的操作&#xff0c;使得Spring开发者能更快速上手。它通过提供spring的运行配置&#xff0c;以及为通用spring项目提供许多非功能性特性&#xff0c;进一步简化了开发过程。 2.框架扩展性 Spri…...

网络编程(IP、端口、协议、UDP、TCP)【详解】

目录 1.什么是网络编程&#xff1f; 2.基本的通信架构 3.网络通信三要素 4.UDP通信-快速入门 5.UDP通信-多发多收 6.TCP通信-快速入门 7.TCP通信-多发多收 8.TCP通信-同时接收多个客户端 9.TCP通信-综合案例 1.什么是网络编程&#xff1f; 网络编程是可以让设…...

Linux线程(二)----- 线程控制

目录 前言 一、线程资源区 1.1 线程私有资源 1.2 线程共享资源 1.3 原生线程库 二、线程控制接口 2.1 线程创建 2.1.1 创建一批线程 2.2 线程等待 2.3 终止线程 2.4 线程实战 2.5 其他接口 2.5.1 关闭线程 2.5.2 获取线程ID 2.5.3 线程分离 三、深入理解线程 …...

Linux 内核irq_stack遍历

环境Centos 4.18.0-80.el8.x86_64 一、x86架构堆栈类型说明 https://www.kernel.org/doc/Documentation/x86/kernel-stacks int get_stack_info(unsigned long *stack, struct task_struct *task,struct stack_info *info, unsigned long *visit_mask) {if (!stack)goto unk…...

GIT问题记录

一、 1.Gitee相关 复现步骤&#xff1a;自己在gitee上使用WEB解决冲突&#xff0c;本地未拉取最新的origin分支&#xff0c;然后本地也做了其他的修改&#xff0c;然后commit并且push&#xff0c;push时候报错&#xff0c;本地分支不干净 尝试拉取origin的最新内容&#xff…...

AzerothCore安装记录

尝试在FreeBSD系统下安装AzerothCore 首先安装相关软件 pkg install cmake mysql80-server boost-all装完mysql之后提示&#xff1a; MySQL80 has a default /usr/local/etc/mysql/my.cnf, remember to replace it with your own or set mysql_optfile"$YOUR_CNF_FILE i…...

Infineon_TC264智能车代码初探及C语言深度学习(一)

本篇文章记录我在智能车竞赛中&#xff0c;对 Infineon_TC264 这款芯片的底层库函数的学习分析。通过深入地对其库函数进行分析&#xff0c;C语言深入的知识得以再次在编程中呈现和运用。故觉得很有必要在此进行记录一下。 目录 ​编辑 一、代码段 1、枚举类型 2、结构体 …...

[Redis]——初识Redis

一、Redis为非关系型数据库 ❓我们常见的MySQL、SQLServer都是关系型数据库&#xff0c;那他们之间有什么区别与联系呢&#xff1f; &#x1f4d5;关系型数据库与非关系型数据库的区别&#xff08;面试题&#xff09; 解释&#xff1a; SQL数据库中的表是有结构的&#xff0c;包…...

YTM32的同步串行通信外设SPI外设详解(Master Part)

YTM32的同步串行通信外设SPI外设详解&#xff08;Master Part&#xff09; 文章目录 YTM32的同步串行通信外设SPI外设详解&#xff08;Master Part&#xff09;IntroductionFeatures引脚信号时钟源其它不常用功能 Pricinple & Mechinism基于FIFO的命令和数据管理机制锁定配…...

【C语言】三子棋

前言&#xff1a; 三子棋是一种民间传统游戏&#xff0c;又叫九宫棋、圈圈叉叉棋、一条龙、井字棋等。游戏规则是双方对战&#xff0c;双方依次在9宫格棋盘上摆放棋子&#xff0c;率先将自己的三个棋子走成一条线就视为胜利。但因棋盘太小&#xff0c;三子棋在很多时候会出现和…...

Web组态可视化编辑器 快速绘制组态

随着工业智能制造的发展&#xff0c;工业企业对设备可视化、远程运维的需求日趋强烈&#xff0c;传统的单机版组态软件已经不能满足越来越复杂的控制需求&#xff0c;那么实现Web组态可视化界面成为了主要的技术路径。 行业痛点 对于软件服务商来说&#xff0c;将单机版软件转变…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

深入理解Optional:处理空指针异常

1. 使用Optional处理可能为空的集合 在Java开发中&#xff0c;集合判空是一个常见但容易出错的场景。传统方式虽然可行&#xff0c;但存在一些潜在问题&#xff1a; // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...

Oracle11g安装包

Oracle 11g安装包 适用于windows系统&#xff0c;64位 下载路径 oracle 11g 安装包...