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

kafka部署以及常用命令详细总结

1环境准备

1.1ip规划

ip: 192.168.1.200

1.2配置主机名

#设置主机名
hostnamectl set-hostname node1

1.3配置hosts

[root@node1 ~]# cat >> /etc/hosts << 'EOF'192.168.1.200 node1
EOF

2部署

2.1安装包准备

将以下安装包从官网下载到本地

jdk-8u371-linux-x64.tar.gz

apache-zookeeper-3.7.1-bin.tar.gz

kafka_2.12-3.4.0.tgz

上述安装包已整理上传到我的资源,需要可自行下载

#将下载好的安装包上传到服务器
[root@node1 ~]# ll
总用量 252268
-rw-------. 1 root root      1257 329 2023 anaconda-ks.cfg
-rw-r--r--  1 root root  12649765 712 15:04 apache-zookeeper-3.7.1-bin.tar.gz
-rw-r--r--  1 root root 139219380 712 15:10 jdk-8u371-linux-x64.tar.gz
-rw-r--r--  1 root root 106441367 712 15:04 kafka_2.12-3.4.0.tgz

2.2安装jdk

#解压安装包
[root@node1 ~]# tar -xvf jdk-8u371-linux-x64.tar.gz -C /usr/local/#配置环境变量
[root@node1 ~]# cat >> /etc/profile << 'EOF'#Set for jdk
export JAVA_HOME=/usr/local/jdk1.8.0_371
export PATH=$PATH:$JAVA_HOME/bin
EOF[root@node1 ~]# source /etc/profile
[root@node1 ~]# java -version
openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)

2.3部署zookeeper

[root@node1 ~]# tar -xf apache-zookeeper-3.7.1-bin.tar.gz -C /usr/local/
[root@node1 ~]# cd /usr/local/
[root@node1 local]# mv apache-zookeeper-3.7.1-bin/ zookeeper
[root@node1 local]# cd zookeeper/conf/[root@node1 conf]# cp zoo_sample.cfg zoo.cfg[root@node1 conf]# vi zoo.cfg
dataDir=/usr/local/zookeeper/data
#server.1=node1:2888:3888
#server.2=node1:2888:3888
...
#多节点需要server.1= 配置,用于多节点之间的心跳检测和选举机制#配置myid,myid 文件用于标识 ZooKeeper 服务器的身份,即使是在单节点环境中,ZooKeeper 也需要知道自己是谁。内容应该是数字 1,表示这是一个独立的单节点部署。[root@node1 conf]# mkdir /usr/local/zookeeper/data
[root@node1 conf]# echo 1 > /usr/local/zookeeper/data/myid#设置环境变量
[root@node1 conf]# cd
[root@node1 ~]# cat >> .bash_profile << 'EOF'#set for zookeeper
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
EOF[root@node1 ~]# source .bash_profile#启动zookeeper
[root@node1 ~]# zkServer.sh start[root@node1 ~]# jps
2038 Jps
1995 QuorumPeerMain

2.4部署kafka

[root@node1 ~]# tar -xf kafka_2.12-3.4.0.tgz -C /usr/local/
[root@node1 ~]# cd /usr/local/
[root@node1 local]# mv kafka_2.12-3.4.0/ kafka
[root@node1 local]# cd kafka/config/[root@node1 config]# vi server.properties
listeners=PLAINTEXT://node1:9092
log.dirs=/usr/local/kafka/logs
zookeeper.connect=node1:2181[root@node1 config]# mkdir /usr/local/kafka/logs#设置环境变量
[root@node1 config]# cd
[root@node1 ~]# cat >> .bash_profile << 'EOF'#set for kafka
export KAFKA_HOME=/usr/local/kafka
export PATH=$PATH:$KAFKA_HOME/bin
EOF[root@node1 ~]# source .bash_profile#启动
[root@node1 ~]# kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties[root@node1 ~]# jps
1995 QuorumPeerMain
2412 Kafka
2429 Jps

3kafka常用使用命令

3.1创建topic以及给用户授权

#创建topic
[root@node1 ~]# kafka-topics.sh --bootstrap-server 192.168.1.200:9092 --create --replication-factor 1 --partitions 1 --topic my-topic
Created topic my-topic.#给用户 mrloam 授予生产权限
[root@node1 ~]# kafka-acls.sh --authorizer-properties zookeeper.connect=192.168.1.200:2181 --add --allow-principal User:mrloam --producer --topic my-topic
Warning: support for ACL configuration directly through the authorizer is deprecated and will be removed in a future release. Please use --bootstrap-server instead to set ACLs through the admin client.
Adding ACLs for resource `ResourcePattern(resourceType=TOPIC, name=my-topic, patternType=LITERAL)`: (principal=User:mrloam, host=*, operation=CREATE, permissionType=ALLOW)(principal=User:mrloam, host=*, operation=WRITE, permissionType=ALLOW)(principal=User:mrloam, host=*, operation=DESCRIBE, permissionType=ALLOW) Current ACLs for resource `ResourcePattern(resourceType=TOPIC, name=my-topic, patternType=LITERAL)`: (principal=User:mrloam, host=*, operation=CREATE, permissionType=ALLOW)(principal=User:mrloam, host=*, operation=WRITE, permissionType=ALLOW)(principal=User:mrloam, host=*, operation=DESCRIBE, permissionType=ALLOW) #创建消费组并授权,消费组不存在则授权消费权限报错
[root@node1 ~]# kafka-console-consumer.sh --bootstrap-server 192.168.1.200:9092 --topic my-topic --group my-group#给用户 mrloam 授予消费权限,指定消费组 my-group
[root@node1 ~]# kafka-acls.sh --authorizer-properties zookeeper.connect=192.168.1.200:2181 --add --allow-principal User:mrloam --consumer --topic my-topic --group my-group#给用户 mrloam 授予消费权限,所有消费组
[root@node1 ~]# kafka-acls.sh --authorizer-properties zookeeper.connect=192.168.1.200:2181 --add --allow-principal User:mrloam --consumer --topic my-topic --group *
#查看所有topic
[root@node1 ~]# kafka-topics.sh --bootstrap-server 192.168.1.200:9092 --list#查看指定topic的详细信息
[root@node1 ~]# kafka-topics.sh --bootstrap-server 192.168.1.200:9092 --topic my-topic --describe

3.2生产、消费

#生产
[root@node1 ~]# kafka-console-producer.sh --bootstrap-server 192.168.1.200:9092 --topic my-topic
#创建或指定 groupid 进行消费
[root@node1 ~]# kafka-console-consumer.sh --bootstrap-server 192.168.1.200:9092 --topic my-topic --group my-group
[root@node1 ~]# kafka-console-consumer.sh --bootstrap-server 192.168.1.200:9092 --topic my-topic --consumer-property --group.id=my-group#将偏移量移动到最早时间位置
[root@node1 ~]# kafka-consumer-groups.sh --bootstrap-server 192.168.1.200:9092 --group my-group --reset-offsets --topic my-topic --to-earliest --execute#设置偏移量到最新时间
[root@node1 ~]# kafka-consumer-groups.sh --bootstrap-server 192.168.1.200:9092 --group my-group --topic my-topic --reset-offsets --to-latest --execute#移动偏移量到指定时间位置
[root@node1 ~]# kafka-consumer-groups.sh --bootstrap-server 192.168.1.200:9092 --group my-group --topic my-topic --reset-offsets --to-datetime "2022-12-08T02:00:00.000" --execute --command-config consumer.properties#移动偏移量到指定位置 200 处
[root@node1 ~]# kafka-consumer-groups.sh --bootstrap-server 192.168.1.200:9092 --group my-group --topic my-topic --reset-offsets --to-offset 200 --execute
#显示key消费,消费出的消息将打印出消息体的key和value
[root@node1 ~]# kafka-console-consumer.sh --bootstrap-server 192.168.1.200:9092 --topic my-topic --group my-group --property print.key=true#指定消费10条数据
[root@node1 ~]# kafka-console-consumer.sh --bootstrap-server 192.168.1.200:9092 \
--topic my-topic \
--group my-group \
--max-messages 10 \
--property print.offset=true \
--property print.partition=true \
--property print.headers=true \
--property print.timestamp=true \
--consumer.config consumer.properties#过滤指定时间的数据, 时间戳: $(date -d '2024-07-11 15:20:00.000' +%s%3N)
[root@node1 ~]# kafka-console-consumer.sh --bootstrap-server 192.168.1.200:9092 \
--topic my-topic \
--group my-group \
--property print.timestamp=true \
--consumer.config consumer.properties \
--from-beginning | awk -F 'CreateTime:' '$2>=1675742400000 && $2<=1675749600000 {print $0}'

3.3查看,添加,移除权限

#查看topic权限
[root@node1 ~]# kafka-acls.sh --authorizer-properties zookeeper.connect=192.168.1.200:2181 --list --topic my-topic#添加权限
[root@node1 ~]# kafka-acls.sh --authorizer-properties zookeeper.connect=192.168.1.200:2181 --add --allow-principal User:mrloam --allow-host * --producer --topic my-topic
[root@node1 ~]# kafka-acls.sh --authorizer-properties zookeeper.connect=192.168.1.200:2181 --add --allow-principal User:mrloam --allow-host 192.168.1.* --producer --topic my-topic
[root@node1 ~]# kafka-acls.sh --authorizer-properties zookeeper.connect=192.168.1.200:2181 --add --allow-principal User:mrloam --allow-host * --consumer --topic my-topic --group my-group
[root@node1 ~]# kafka-acls.sh --authorizer-properties zookeeper.connect=192.168.1.200:2181 --add --allow-principal User:mrloam --allow-host * --consumer --topic my-topic --group *
#移除权限
[root@node1 ~]# kafka-acls.sh --authorizer-properties zookeeper.connect=192.168.1.200:2181 --remove --allow-principal User:mrloam --allow-host 192.168.1.* --producer --topic my-topic --force[root@node1 ~]# kafka-acls.sh --authorizer-properties zookeeper.connect=192.168.1.200:2181 --remove --allow-principal User:mrloam --allow-host 192.168.1.* --consumer --group my-group --topic my-topic --force

增加topic分区数

[root@node1 ~]# kafka-topics.sh --alter --bootstrap-server 192.168.1.200:9092 --topic my-topic --partitions 3

消费组信息查询

#查看所有消费组
[root@node1 ~]# kafka-consumer-groups.sh --list --bootstrap-server 192.168.1.200:9092#查看消费组详细信息
[root@node1 ~]# kafka-consumer-groups.sh --describe --bootstrap-server 192.168.1.200:9092 --group my-group

删除topic

[root@node1 ~]# kafka-topics.sh --delete --bootstrap-server 192.168.1.200:9092 --topic my-topic
#查看kafka版本
[root@node1 ~]# kafka-topics.sh --version
[root@node1 ~]# kafka-server-start.sh --version[root@node1 ~]# cd $KAFKA_HOME
[root@node1 ~]# find ./libs -name 'kafka_*'|grep -o 'kafka[^\\n]*'	#kafka_2.12-3.4.0.jar #scala版本:2.11   kafka版本:3.4.0#查看zk版本
[root@node1 ~]# zkServer.sh version#连接到 ZooKeeper 服务器
[root@node1 ~]# zkCli.sh
version[root@node1 ~]# echo stat | nc 192.168.1.200 2181

相关文章:

kafka部署以及常用命令详细总结

1环境准备 1.1ip规划 ip: 192.168.1.200 1.2配置主机名 #设置主机名 hostnamectl set-hostname node11.3配置hosts [rootnode1 ~]# cat >> /etc/hosts << EOF192.168.1.200 node1 EOF2部署 2.1安装包准备 将以下安装包从官网下载到本地 jdk-8u371-linux-x6…...

代码随想录算法训练营第29天|LeetCode 134. 加油站、135. 分发糖果、860.柠檬水找零、406.根据身高重建队列

1. LeetCode 134. 加油站 题目链接&#xff1a;https://leetcode.cn/problems/gas-station/description/ 文章链接&#xff1a;https://programmercarl.com/0134.加油站.html 视频链接&#xff1a;https://www.bilibili.com/video/BV1jA411r7WX 思路&#xff1a; 贪心&#xff…...

代理模式(大话设计模式)C/C++版本

代理模式 C #include <iostream> using namespace std;class Subject // Subject 定义了RealSubject和Proxy的共用接口..这样就在任何使用RealSubject的地方都可以使用Proxy { public:virtual void func(){cout << "Subject" << endl;} };class R…...

本人学习保存-macOS打开Navicat提示「“Navicat Premium”已损坏,无法打开。 你应该将它移到废纸篓。」的解决方法

新安装了macOS Ventura&#xff0c;打开Navicat Premium&#xff0c;发现会提示&#xff1a; “Navicat Premium”已损坏&#xff0c;无法打开。 你应该将它移到废纸篓。 遇到这种情况&#xff0c;千万别直接移到废纸篓&#xff0c;是有办法解决的。在这里记录一下解决方案。 …...

《Cross-Image Pixel Contrasting for Semantic Segmentation》论文解读

期刊&#xff1a;TPAMI 年份&#xff1a;2024 摘要 研究图像语义分割问题。目前的方法主要集中在通过专门设计的上下文聚合模块(如空洞卷积、神经注意力)或结构感知的优化目标(如iou样损失)挖掘"局部"上下文&#xff0c;即单个图像中像素之间的依赖关系。然而&…...

技术周总结 2024.07.08~07.14(算法,Python,Java,Scala,PHP)

文章目录 一、07.13 周六1.0&#xff09;算法题&#xff1a;字符串中的单词反转1.1&#xff09; 问题01:可靠性计算中的MTTR MTTF MTBF 分别指什么&#xff1f;他们之间有什么联系&#xff1f;MTTR (Mean Time to Repair)MTTF (Mean Time to Failure)MTBF (Mean Time Between F…...

UnityECS学习中问题及总结entityQuery.ToComponentDataArray和entityQuery.ToEntityArray区别

在Unity的ECS&#xff08;Entity Component System&#xff09;开发中&#xff0c;entityQuery.ToComponentDataArray<T>(Allocator.Temp) 和 entityQuery.ToEntityArray(Allocator.Temp) 是两种不同的方法&#xff0c;用于从实体查询中获取数据。除了泛型参数之外&#…...

[python]基于yolov10+gradio目标检测演示系统设计

【设计介绍】 YOLOv10结合Gradio实现目标检测系统设计是一个结合了最新目标检测技术和快速部署框架的项目。下面将详细介绍这一系统的设计和实现过程。 一、YOLOv10介绍 YOLOv10是YOLO&#xff08;You Only Look Once&#xff09;系列的最新版本&#xff0c;由清华大学的研究…...

浏览器开发者视角及CSS表达式选择元素

点击想要查看的接口&#xff0c;然后点击检查&#xff0c;便可以切换到该接口对应的html代码 如果F12不起作用的话&#xff0c;点击更多工具&#xff0c;然后选择开发者工具即可 ctrlF可以去查阅相关的CSS表达式选择元素 如果没有加#t1&#xff0c;那么表示的是选择所有的p 使用…...

GuLi商城-商品服务-API-品牌管理-统一异常处理

每个方法都加这段校验太麻烦了 准备做一个统一异常处理@ControllerAdvice 后台代码: package com.nanjing.gulimall.product.exception;import com.nanjing.common.exception.BizCodeEnum; import com.nanjing.common.utils.R; import lombok.extern.slf4j.Slf4j; import org…...

VUE+Spring Flux实现SSE长连接

VUE代码 // 初始化EventSourceinitEventSource(url) {const token getAccessToken();const eventSource new EventSourcePolyfill(url, {headers: {Authorization: Bearer ${token},tenant-id: getTenantId(),}});eventSource.onerror (e) > {console.log("SSE连接错…...

C#实现Winform程序右下角弹窗消息提示

前言 消息通知在应用程序中&#xff0c;是一种非常有用的功能&#xff0c;实现对一些重要信息、提醒或警告及时向用户展示。我们在使用软件时&#xff0c;通常会收到一种从桌面右下角弹出的&#xff08;提示信息或广告&#xff09;信息框。本文将介绍使用 C# 实现此种方式的信息…...

Java三剑客:封装、继承、多态的魔法世界

第一章&#xff1a;封装的艺术 —— 保护你的宝藏 案例分析&#xff1a;银行账户系统 想象一下&#xff0c;你正在构建一个银行账户系统。每个账户都有一个余额&#xff0c;这个余额需要受到严格的保护&#xff0c;不能被随意修改。我们可以通过封装来实现这一目标。 示例代…...

0145__Linux的capability

https://zhuanlan.zhihu.com/p/693896673 Linux的capability深入分析&#xff08;1&#xff09;_linux 设置进程capprm-CSDN博客 cap_init(3) - Linux manual page...

# Redis 入门到精通(一)数据类型(4)

Redis 入门到精通&#xff08;一&#xff09;数据类型&#xff08;4&#xff09; 一、redis 数据类型–sorted_set实现时效性任务管理 1、sorted_set 类型数据操作的注意事项 score 保存的数据存储空间是64位&#xff0c;如果是整数范围是-9007199254740992~9007199254740992…...

西邮计科嵌入式复习

西邮嵌入式复习 一、第一章复习二、第二章复习三、第三章复习四、第四章复习 一、第一章复习 二、第二章复习 三、第三章复习 四、第四章复习...

Java如何使用 HttpClientUtils 发起 HTTP 请求

Java如何使用 HttpClientUtils 发起 HTTP 请求 一、前言1.HttpClientUtils 类概览2.解析 HttpClientUtils 类3.使用 HttpClientUtils 类 一、前言 在现代的软件开发中&#xff0c;经常需要与远程服务器进行通信&#xff0c;例如获取数据或发送数据。Apache HttpClient 是一个流…...

无人机的工作原理

无人飞行器&#xff08;UAV&#xff0c;即Unmanned Aerial Vehicle&#xff09;的工作原理涉及多个复杂的系统和技术。以下是对各个系统和技术的详细介绍&#xff1a; 1. 飞行控制系统&#xff08;FCS&#xff09; 飞行控制系统是无人机的“大脑”&#xff0c;负责监控和调整…...

敏捷开发笔记(第10章节)--Liskov原则(LSP)

目录 1&#xff1a;PDF上传链接 10.1 Liskov替换原则&#xff08;LSP&#xff09; 10.2 一个违反LSP的简单例子 10.6 启发式规则和习惯用法 10.7 结论 1&#xff1a;PDF上传链接 【免费】敏捷软件开发(原则模式与实践)资源-CSDN文库 OCP背后的主要机制是抽象(abstraction…...

基于SSM的校园一卡通管理系统的设计与实现

摘 要 本报告全方位、深层次地阐述了校园一卡通管理系统从构思到落地的整个设计与实现历程。此系统凭借前沿的 SSM&#xff08;Spring、Spring MVC、MyBatis&#xff09;框架精心打造而成&#xff0c;旨在为学校构建一个兼具高效性、便利性与智能化的一卡通管理服务平台。 该系…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

如何应对敏捷转型中的团队阻力

应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中&#xff0c;明确沟通敏捷转型目的尤为关键&#xff0c;团队成员只有清晰理解转型背后的原因和利益&#xff0c;才能降低对变化的…...

go 里面的指针

指针 在 Go 中&#xff0c;指针&#xff08;pointer&#xff09;是一个变量的内存地址&#xff0c;就像 C 语言那样&#xff1a; a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10&#xff0c;通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...

鸿蒙HarmonyOS 5军旗小游戏实现指南

1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;采用DevEco Studio实现&#xff0c;包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...

Appium下载安装配置保姆教程(图文详解)

目录 一、Appium软件介绍 1.特点 2.工作原理 3.应用场景 二、环境准备 安装 Node.js 安装 Appium 安装 JDK 安装 Android SDK 安装Python及依赖包 三、安装教程 1.Node.js安装 1.1.下载Node 1.2.安装程序 1.3.配置npm仓储和缓存 1.4. 配置环境 1.5.测试Node.j…...

使用python进行图像处理—图像变换(6)

图像变换是指改变图像的几何形状或空间位置的操作。常见的几何变换包括平移、旋转、缩放、剪切&#xff08;shear&#xff09;以及更复杂的仿射变换和透视变换。这些变换在图像配准、图像校正、创建特效等场景中非常有用。 6.1仿射变换(Affine Transformation) 仿射变换是一种…...

uni-app学习笔记二十三--交互反馈showToast用法

showToast部分文档位于uniapp官网-->API-->界面&#xff1a;uni.showToast(OBJECT) | uni-app官网 uni.showToast(OBJECT) 用于显示消息提示框 OBJECT参数说明 参数类型必填说明平台差异说明titleString是提示的内容&#xff0c;长度与 icon 取值有关。iconString否图…...

Steam爬取相关游戏评测

## 因为是第一次爬取Steam。所以作为一次记录发出&#xff1b;有所错误欢迎指出。 无时间指定爬取 import requests import time import csv import osappid "553850" # 这里你也可以改成 #appid int(input()) max_reviews 10000 # 想爬多少条 # max_reviews…...