CentOS下安装Kafka3

news2024/12/28 17:45:17

  kafka是分布式消息队列,本文讲述其在centos(centos 7.5)下的安装。安装过程可以参考其官方文档https://kafka.apache.org/36/documentation.html

首先在官网 https://kafka.apache.org/downloads 下载Kafka二进制文件(官网的压缩包里面已经包含了Linux和windows的Kafka可执行文件了),选择目前比较新的3.6.1版本下载。

一、安装Java环境

 Kafka 是用 Java 开发的,因此需要安装java环境。从Kafka的官方文档 Apache Kafka 可以看到,Kafka3.6.1需要的java环境为Java8 或以上(不同版本的Kafka需要的Java环境版本也不一样)。

从Java官网Java Downloads | Oracle 下载 JDK(SUN公司提供的一套Java开发环境,简称JDK(JavaDevelopmentKit),它是整个Java的核心,其中包括Java编译器、Java运行工具、Java文档生成工具、Java打包工具)

将java jdk拷贝到CentOS中,执行命令:

tar -zxvf jdk-21_linux-x64_bin.tar.gz
cd jdk-21.0.2
mkdir /usr/lib/jdk
cd ..
mv jdk-21.0.2/ /usr/lib/jdk

配置java环境变量,将环境变量配置在etc/profile或/etc/bashrc中

vi /etc/bashrc

在末尾添加以下几行文字:

#set java env
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_291
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

让环境变量生效

source /etc/bashrc

执行命令:

java -version

如果出现现版本号说明Java环境安装成功:

二、安装部署Kafka

然后我们来安装Kafka,将之前下载下来的Kafka二进制文件kafka_2.12-3.6.1.tgz拷贝到CentOS中,执行命令:

tar -zxvf kafka_2.12-3.6.1.tgz
mv kafka_2.12-3.6.1 kafka_3.6.1
cd kafka_3.6.1

可以看到目录结构如下:

.kafka3版本之后自带zookeeper。配置zookeeper的配置文件:

vi config/zookeeper.properties

设置快照存贮路径

配置Kafka的配置文件:

vi config/server.properties

设置日志文件的存贮路径:

启动zookeeper:

bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

启动kafka:

bin/kafka-server-start.sh -daemon config/server.properties

通过netstat命令查看到9092端口被一个java进程占用,说明启动成功了

三、Kafka的基本操作

创建主题:

bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092

Kafka 中的消息以主题为单位进行归类,生产者负责将消息发送到特定的主题(发送到 Kafka 集群中的每一条消息都要指定一个主题),而消费者负责订阅主题并进行消费。

查看主题属性:

bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server localhost:9092

新建两个终端,分别执行命令,通过生产者发送消息:

bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092

通过消费者消费消息:

bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092

然后就可以看到生产者和消费者进行通讯了:

四、遇到问题

Kafka生产者、消费者通讯时可能会报错:Error connecting to node xxxxx:9092,可以参考:《kafka发送数据报错: Error connecting to node xxxxx:9092 (id: 1 rack: null)java.net.UnknownHostExceptio》

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

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

相关文章

WordPress建站入门教程:如何在本地电脑搭建WordPress网站?

前面跟大家分享了『WordPress建站入门教程:如何安装本地WordPress网站运行环境?』,接下来boke112百科就继续跟大家分享本地电脑如何搭建WordPress网站。 小皮面板(phpstudy)的“软件管理 – 网站程序”虽然可以一键部…

2023年,我的年终总结

序言 2023年的年终总结一直拖到现在,想来是有多个原因吧:第一个应该是年底还有些事情没有完成,内心有所不甘;第二个应该是这一年似乎是很忙碌的一年,不知从何说起;第三个应该是对于自己这一年的收获&#…

AD22编译他人分享的集成库

Content 1. 新建集成库2. 添加工程文件3. 编译工程 从网上下载了很多封装库,但是不知道如何添加进去,折腾了一会儿弄明白了 1. 新建集成库 2. 添加工程文件 添加完之后是这个样子,总而言之就是把你需要的全部添加进来: 3. 编译工…

ER-NeRF实时对话数字人模型训练与部署

ER-NeRF是基于NeRF用于生成数字人的方法,可以达到实时生成的效果。 下载源码 cd D:\Projects\ git clone https://github.com/Fictionarry/ER-NeRF cd D:\Projects\ER-NeRF 下载模型 准备面部解析模型 wget https://github.com/YudongGuo/AD-NeRF/blob/master/…

STM32(6)中断

1.中断 1.1 中断的概念 STM32的中断: 1.2 中断优先级 用数字的大小表示中断优先级的高低,数字的范围:0000--1111(二进制),即0-15,共16级优先级。 进一步对这4位二进制数进行划分,可…

java012 - Java集合基础

1、集合基础 1.1 集合概述 引用数据类型包括:类、接口、数组[] 1.2 ArrayList构造和添加方法 代码: 空集合对象:[] add() add(int index,E element): 1.3 ArrayList集合常用方法

前缀和 刷题笔记

关键在于 构造前缀和数组 类比前n项和 第n项和等于 前n-1项和加上当前项 s[n]s[n-1]a[n]; #include<iostream> #include<algorithm> #include<cstring> #include<cstdio> using namespace std; int n,m; const int N1e5100; int a[N],s[N]; int ma…

git标签操作

一.标签管理 1.理解标签 标签 tag &#xff0c;可以简单的理解为是对某次 commit 的⼀个标识&#xff0c;相当于起了⼀个别名,当我们需要回退到某个重要版本时&#xff0c;直接使⽤标签就能很快定位到 2.创建标签 ⾸先&#xff0c;切换到需要打标签的分⽀上,然后&#xf…

C语言程序与设计——函数(一)

函数式编程 在编程范式中有很多分类&#xff0c;面向对象式&#xff0c;命令式编程&#xff0c;声明式编程等&#xff0c;而函数式编程也是一种重要的编程范式。 函数式编程&#xff08;Functional Programming)&#xff0c;FP是一种将计算视为函数求值过程的编程范式&#xf…

volatile关键字的作用 以及 单例模式(饿汉模式与懒汉模式的区别及改进)

文章目录 &#x1f4a1;volatile保证内存可见性&#x1f4a1;单例模式&#x1f4a1;饿汉模式&#x1f4a1;懒汉模式&#x1f4a1;懒汉模式多线程版&#x1f4a1;volatile防止指令重排序 &#x1f4a1;volatile保证内存可见性 Volatile 修饰的变量能够保证“内存可见性”以及防…

【LeetCode】升级打怪之路 Day 11:栈的应用、单调栈

今日题目&#xff1a; Problem 1: 栈的应用 155. 最小栈 | LeetCode20. 有效的括号 | LeetCode150. 逆波兰表达式求值 | LeetCode Problem 2: 单调栈 496. 下一个更大元素 I739. 每日温度503. 下一个更大元素 II 目录 Problem 1&#xff1a;栈 - “先进后出”的应用LC 155. 最…

【Tomcat】The CATALINA_HOME environment variable is not defined correctly

文章目录 一、问题二、解决办法三、优化 一、问题 运行绿色版Tomcat时&#xff0c;单击apache-tomcat-9.0.27\bin\startup.bat时窗口一闪而过。 检查JAVA_HOME环境变量&#xff0c;可以发现并没有问题。 为了检查错误&#xff0c;将startup.bat程序使用文本编辑器打开&#x…

Vue2+ElementUI列表、表格组件的封装

Vue2ElementUI列表组件的封装&#xff1a;引言 在日常开发中&#xff0c;我们经常会遇到需要展示列表数据的场景。ElementUI 提供的 el-table 组件是一个功能强大的表格组件&#xff0c;可以满足大部分的需求。但是&#xff0c;在实际应用中&#xff0c;我们往往需要根据业务需…

Python | Conda安装包报错:PackagesNotFoundError

Conda在下载安装包时报错&#xff1a; PackagesNotFoundError: The following packages are not available from current channels:- XXXXXX&#xff08;包名&#xff09;有如下两种解决方法&#xff1a; 方法一&#xff1a;将conda-forge添加到搜索路径上 在命令行运行下方指令…

spring cloud 之 Netflix Eureka

1、Eureka 简介 Eureka是Spring Cloud Netflix 微服务套件中的一个服务发现组件&#xff0c;本质上是一个基于REST的服务&#xff0c;主要用于AWS云来定位服务以实现中间层服务的负载均衡和故障转移,它的设计理念就是“注册中心”。 你可以认为它是一个存储服务地址信息的大本…

14-RPC-自研微服务框架

RPC RPC 框架是分布式领域核心组件&#xff0c;也是微服务的基础。 RPC &#xff08;Remote Procedure Call&#xff09;全称是远程过程调用&#xff0c;相对于本地方法调用&#xff0c;在同一内存空间可以直接通过方法栈实现调用&#xff0c;远程调用则跨了不同的服务终端&a…

游戏框架搭建

使用框架的目标&#xff1a;低耦合&#xff0c;高内聚&#xff0c;表现和数据分离 耦合&#xff1a;对象&#xff0c;类的双向引用&#xff0c;循环引用 内聚&#xff1a;相同类型的代码放在一起 表现和数据分离&#xff1a;需要共享的数据放在Model里 对象之间的交互一般有三…

XUbuntu22.04之显示实时网速(二百一十八)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

【字符串】马拉车(Manacher)算法

本篇文章参考&#xff1a;比较易懂的 Manacher&#xff08;马拉车&#xff09;算法配图详解 马拉车算法可以求出一个字符串中的最长回文子串&#xff0c;时间复杂度 O ( n ) O(n) O(n) 因为字符串长度的奇偶性&#xff0c;回文子串的中心可能是一个字符&#xff0c;也可能是…

智慧草莓基地:Java与SpringBoot的技术革新

✍✍计算机毕业编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java、…