Linux 搭建 kafka 流程

优质博文:IT-BLOG-CN
在这里插入图片描述

一、安装环境

【1】CenOS7虚拟机三台
【2】已经搭建好的zookeeper集群。
【3】软件版本:kafka_2.11-1.0.0

二、创建目录并下载安装软件

【1】创建目录

cd /opt
mkdir kafka #创建项目目录
cd kafka
mkdir kafkalogs #创建kafka消息目录,主要存放kafka消息

【2】下载软件:我用的是xshell工具将下载好的软件传送到虚拟机的,放在了/opt/kafka/目录下,并解压:

tar -zxvf kafka_2.11-1.0.0.tgz

三、修改配置文件

【1】进入到config目录

cd /opt/kafka/kafka_2.11-1.0.0/config/

我们主要关心的文件只有一个:server.properties我们可以发现在这个目录下有很多文件,还有zookeeper的文件。我们可以直接使用kafka自带的zookeeper集群来启动,但是考虑到未来的项目需求,建议使用独立的zookeeper集群。

-rw-r--r--. 1 root root 906 Oct 27 08:56 connect-console-sink.properties
-rw-r--r--. 1 root root 909 Oct 27 08:56 connect-console-source.properties
-rw-r--r--. 1 root root 5807 Oct 27 08:56 connect-distributed.properties
-rw-r--r--. 1 root root 883 Oct 27 08:56 connect-file-sink.properties
-rw-r--r--. 1 root root 881 Oct 27 08:56 connect-file-source.properties
-rw-r--r--. 1 root root 1111 Oct 27 08:56 connect-log4j.properties
-rw-r--r--. 1 root root 2730 Oct 27 08:56 connect-standalone.properties
-rw-r--r--. 1 root root 1221 Oct 27 08:56 consumer.properties
-rw-r--r--. 1 root root 4727 Oct 27 08:56 log4j.properties
-rw-r--r--. 1 root root 1919 Oct 27 08:56 producer.properties
-rw-r--r--. 1 root root 7030 Nov 22 18:10 server.properties
-rw-r--r--. 1 root root 1032 Oct 27 08:56 tools-log4j.properties
-rw-r--r--. 1 root root 1023 Oct 27 08:56 zookeeper.properties

【2】修改配置文件server.properties:需要说明的是,我现在是在虚拟机1上进行的操作,同样的操作要在三台虚拟机上都执行,只是有些细微的配置不同,其他配置信息完全相同。对于不同虚拟机上有差异的部分,我会一一指出。下面修改配置文件:

# 指定当前节点的brokerId,同一个集群中的brokerId需要唯一
broker.id=0
# 指定监听的地址及端口号,使用hostname 或者内网IP皆可
listeners=PLAINTEXT://hostname:9092
# 配置外网访问ip  如果为空 则会使用listeners(如果不为空) 其他的情况使用 InetAddress.getCanonicalHostName() 的值
# Hostname and port the broker will advertise to producers and consumers.
#  If not set,  it uses the value for "listeners" if configured.  Otherwise, it will use   the value returned from java.net.InetAddress.getCanonicalHostName().
advertised.listeners=PLAINTEXT://hostname:9092
# 指定kafka日志文件的存储目录
log.dirs=/usr/local/kafka/logs
# 指定zookeeper的连接地址,若有多个地址则用逗号分隔
zookeeper.connect=localhost:2181,localhost:2182,localhost:2183
# 配置可删除
delete.topic.enable=true

也就是说,zookeeper.connect指的是zookeeper集群的地址,可以是多个,多个之间用逗号分割。

使用scp命令发送到其他的服务器 注意配置文件需要重点修改几个地方 broker.id listeners以及advertised.listeners

scp -r /usr/local/develop/kafka_2.12-3.6.1 remote_ip:/usr/local/develop/kafka_2.12-3.6.1

需要搭建几个节点 就是发送几份,启动服务即可。

nohup sh ./bin/kafka-server-start.sh ./config/server.properties >./out.log 2>&1 &

四、启动kafka集群并测试

【1】启动服务:首先要启动kafka集群,并且是三台都要手动去启动。

// 进入kafka的bin目录
cd /opt/kafka/kafka_2.11-1.0.0/bin/
// 启动kafka
./kafka-server-start.sh -daemon ../config/server.properties

-daemon代表着以后台模式运行kafka集群,这样kafka的启动就不会影响我们继续在控制台输入命令。

【2】检查服务是否启动:执行命令jps,显示出了正在运行Kafka这个进程,进程号是4855。在运行这个命令时,你可能会出现错误,显示jps command not found。文章的最后给出了解决方案。

jps
4161 QuorumPeerMain
4855 Kafka
6809 Jps

【3】创建topic来验证是否创建成功

创建topic

./kafka-topics.sh --create --zookeeper 192.168.172.10:12181 --replication-factor 2 --partitions 1 --topic my-topic

参数解释:

--replication-factor 2 // 复制两份
--partitions 1 // 创建1个分区
--topic // 主题为my-topic
-- --zookeeper // 此处为为zookeeper监听的地址

创建生产者producer

./kafka-console-producer.sh --broker-list 192.168.172.10:19092 --topic my-topic //`这个IP地址可以写brokerlist中的任意一个

此时,console处于阻塞状态,可以直接输入数据。

创建消费者: 此时要切换到另一台虚拟机的shell界面输入以下命令:

./kafka-console-consumer.sh --zookeeper 192.168.172.10:12181 --topic my-topic --from-beginning

此时,一旦有数据生成,此处的console中就会显示数据。

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

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

相关文章

学校机器该maven环境

在学校机器上 安装maven配置idea中的maven 后,发现无法运行, 推测是学校电脑上idea版本和我们下的maven 可能不太匹配。 学校的电脑上idea有集成的maven,但默认配置是访问国外的服务器 解决办法: 下载分享给各位同学的压缩包m…

注意力机制在大语言模型中的应用

在大语言模型中,注意力机制(Attention Mechanism)用于捕获输入序列中不同标记(token)之间的关系和依赖性。这种机制可以动态地调整每个标记对当前处理任务的重要性,从而提高模型的性能。具体来说&#xff0…

Kubernetes之 资源管理

系列文章目录 Kubernetes之 资源管理 文章目录 系列文章目录前言一、资源管理介绍二、YAML语言介绍 1.1.YAML语法:2.读入数据总结 一、资源管理介绍 在kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes。 1. kub…

SQL注入和防御方法

SQL注入是一种攻击手段,通过在SQL查询中插入恶意SQL代码片段,欺骗数据库服务器执行非授权的数据库操作。这种攻击可能导致数据泄露、篡改或丢失。为了防范SQL注入,可以采取以下几种策略: 1.使用预编译语句(Prepared St…

Golang | Leetcode Golang题解之第201题数字范围按位与

题目&#xff1a; 题解&#xff1a; func rangeBitwiseAnd(m int, n int) int {for m < n {n & (n - 1)}return n }

怎么打印加密的Excel文件,有哪些方法?

很多小伙伴都喜欢使用Excel来创建或是编辑表格文档&#xff0c;因为Excel中的功能十分的丰富且强大&#xff0c;在Excel中我们可以对表格文档进行各种操作。有的小伙伴可能在打印时需要给每一页表格添加页码&#xff0c;但又不知道该在哪里找到相关操作&#xff0c;其实很简单&…

视频编解码从H.264到H.266:浅析GB28181安防视频汇聚EasyCVR视频压缩技术

随着信息技术的飞速发展&#xff0c;视频编解码技术也在不断革新&#xff0c;以适应高清、超高清甚至8K视频时代的到来。视频编解码技术作为数字多媒体领域的核心技术之一&#xff0c;也在不断地演进和革新。从早期的H.261到现在的H.265、H.266&#xff0c;每一次技术的升级都极…

electron线上更新

一、安装electron-updater npm install --save electron-updater二、在main.js中引入使用 import { autoUpdater } from electron; if (!isDev) {const serverUrl https://your-update-server.com; // 自定义更新服务器地址或GitHub Releases地址autoUpdater.setFeedURL(${…

GPT-5:编织未来智能的经纬

GPT-5技术突破预测 随着GPT-5的预告&#xff0c;人工智能的叙事正步入一个崭新的篇章。想象中的GPT-5不仅是自然语言处理&#xff08;NLP&#xff09;领域的革命&#xff0c;更是对“理解”本身的一次重新定义。它可能集成深度学习的最新进展&#xff0c;如自注意力机制的进一步…

Java将list数组中重复的对象进行去重

/*** 数组去重*/ public class ArrayDistinct {public static void main(String[] args) {ArrayList<Object> list new ArrayList<>();JSONObject jsonObject1 new JSONObject();jsonObject1.put("name","张三");jsonObject1.put("age&…

使用systemd管理Linux下的frps服务:安装、配置及自动化操作指南

在 Linux 系统下&#xff0c;使用 systemd 可以方便地控制 frps 服务端的启动、停止、配置后台运行以及开机自启动。以下是具体的操作步骤&#xff1a; 1. 安装 systemd 如果您的 Linux 服务器上尚未安装 systemd&#xff0c;可以使用包管理器如 yum&#xff08;适用于 Cent…

Spring系统学习 - 基于注解管理Bean

什么是基于注解的方式管理Bean 在 Spring 框架中&#xff0c;基于注解的方式管理 Bean 是一种非常流行且现代的方法。它允许你通过在类、方法或字段上添加特定的注解来声明 Bean 的创建和依赖注入&#xff0c;从而避免了在 XML 配置文件中定义 Bean 的繁琐工作。 注解和 XML …

码农:如何快速融入团队

问题&#xff1a; 码农如何快速融入团队&#xff1f; 记住一个标准&#xff1a;能干事、能抗事。 总结一个字&#xff1a; 靠谱。 适用范围&#xff1a;新手码农、老司机码农、测试、DBA、运维、产品经理、项目经理、架构师、技术专家、。。。。适用于任何行业的打工者。 下面要…

电脑开机就一直在开机界面转圈,怎么回事?

前言 前段时间小白去给一位朋友修电脑。她说这个电脑很奇怪&#xff0c;有时候开机很快就进入电脑界面&#xff0c;但有时候开机一直在那转圈&#xff0c;半天也不见进入。 Windows7系统的小伙伴应该也有遇到过类似的问题&#xff0c;就是电脑一直在Windows的logo界面&#xf…

自动驾驶水泥搅拌车在梁场的应用(上)

北京渡众机器人科技有限公司的自动驾驶水泥搅拌车在梁场的应用可以极大地提升生产效率和安全性。通常情况下&#xff0c;梁场是用于预制混凝土梁的生产和装配的场地&#xff0c;传统上需要大量的人工操作和搅拌车的驾驶。引入自动驾驶技术可以带来以下几个显著的优势&#xff1…

AI进阶指南第五课,大模型相关概念(知识库,微调)

虽然前面大概讲了一下大模型的一些基本概念&#xff0c;但是那些都比较偏向于大模型本身&#xff0c;但是我们使用的时候如果只靠大模型肯定是不行的。 就好比如果一个人只有一个脑子&#xff0c;其他什么部位也没有的话&#xff0c;那场面。&#xff08;感觉现在网上的AI图片…

npm install报错Maximum call stack size exceeded

npm 报错 方案&#xff1a; npm cache clean --force npm install

成功解决​​​​​​​TypeError: __call__() got an unexpected keyword argument ‘first_int‘

成功解决TypeError: __call__() got an unexpected keyword argument first_int 目录 解决问题 解决思路 解决方法 T1、直接调用原始函数 T2、检查装饰器实现 T3、使用不同的调用方式 解决问题 result = multiply(**arguments) File "D:\ProgramData\Anaconda3\Li…

Redis 7.x 系列【10】数据类型之有序集合(ZSet)

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Redis 版本 7.2.5 源码地址&#xff1a;https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 常用命令2.1 ZADD2.2 ZCARD2.3 ZSCORE2.4 ZRANGE2.5 ZREVRANGE2.6 ZRANK2.7…

kettle使用手册 安装9.0版本 建议设置为英语

0.新建转换的常用组件 0. Generate rows 定义一个字符串 name value就是字符串的值 0.1 String operations 字段转大写 去空格 1. Json input 来源于一个json文件 1.json 或mq接收到的data内容是json字符串 2. Json output 定义Jsonbloc值为 data, 左侧Fieldname是数据库…