当前位置: 首页 > 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;将单机版软件转变…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝

目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为&#xff1a;一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 &#xff1a;主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 &#xff1a;确保数据的完整性&#xff0c;便于数据的查询和管理。 示例 &#xff1a;在学生信息表中&#xff0c;学号可以作为主键&#xff…...