Linux 搭建Kafka集群,最新教程,细到极致

2023-11-12

  大家好呀,今天给大家带来的是,最新版kafka集群的安装教程,希望给小伙伴们一点小小的帮助。

注意:提前安装好jdk, Jdk安装教程

1、准备安装包,Kafka官网下载
在这里插入图片描述

2、kafka安装需要zk,注意:kafka安装版本和zk版本要一致,下载以后,先解压kafka,进入libs,查看依赖的zk版本再下载,切记切记!!!zookeeper官网下载

[root@VM-4-2-centos jdk]# java -version
java version "1.8.0_333"
Java(TM) SE Runtime Environment (build 1.8.0_333-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.333-b02, mixed mode)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3、先解压zk,然后重命名,同时配置环境变量

[root@VM-4-2-centos kafka]# tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz 
[root@VM-4-2-centos kafka]# mv apache-zookeeper-3.6.3-bin/ zookeeper-3.6.3
echo 'export ZOOKEEPER_HOME=/opt/kafka/zookeeper/zookeeper-3.6.3' >> /etc/profile
echo 'export PATH=$PATH:$ZOOKEEPER_HOME/bin' >> /etc/profile
source /etc/profile

3A、新建一个zookeeper文件夹,然后移进去

[root@VM-4-2-centos kafka]# mkdir zookeeper
[root@VM-4-2-centos kafka]# mv zookeeper-3.6.3 ./zookeeper/

5、修改conf文件夹配置

[root@VM-4-2-centos kafka]# cd zookeeper/zookeeper-3.6.3/conf
[root@VM-4-2-centos zookeeper-3.6.3]# mv zoo_sample.cfg zoo.cfg 
[root@VM-4-2-centos conf]# vi zoo.cfg 

注意:server 设置broker Id的服务地址,本机ip一定要用0.0.0.0代替

server.1=0.0.0.0:2888:3888,1是我们data/myid,2888是服务端通信端口,3888服务端之间选举端口,云服务器开放2181 2888 3888端口

dataDir=/opt/kafka/zookeeper/zookeeper-3.6.3/data

dataLogDir=/opt/kafka/zookeeper/zookeeper-3.6.3/log

server.1=0.0.0.0:2888:3888
 
server.2=tencent02:2888:3888
 
server.3=tencent03:2888:3888

6、创建data 、log文件夹,然后进入data,
添加内容:1 ,其他两台主机分别配置 2和3

[root@VM-4-2-centos conf]# cd ..
[root@VM-4-2-centos zookeeper-3.6.3]# mkdir data && mkdir log
[root@VM-12-13-centos zookeeper-3.6.3]# cd data
echo 1 > myid

7、上去,然后启动,第二台、第三台服务器,请重复3-7步骤

[root@VM-4-2-centos data]# cd ..
[root@VM-4-2-centos zookeeper-3.6.3]# ./bin/zkServer.sh start

8、查看zk是否启动成功,没有问题

[root@VM-4-2-centos zookeeper-3.6.3]# jps
92838 QuorumPeerMain
94502 Jps
[root@VM-4-2-centos zookeeper-3.6.3]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1741/sshd           
tcp6       0      0 :::2181                 :::*                    LISTEN      92838/java          
tcp6       0      0 :::3888                 :::*                    LISTEN      92838/java          
tcp6       0      0 :::8080                 :::*                    LISTEN      92838/java          
tcp6       0      0 :::39381                :::*                    LISTEN      92838/java          
tcp6       0      0 :::22                   :::*                    LISTEN      1741/sshd  

9、查看zk集群状态

[root@VM-12-13-centos logs]# cd /opt/kafka/zookeeper/zookeeper-3.6.3
[root@VM-12-13-centos zookeeper-3.6.3]# ./bin/zkServer.sh status ./conf/zoo.cfg
ZooKeeper JMX enabled by default
Using config: ./conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader

切换到第二台服务器:

[root@VM-4-12-centos kafka]# cd /opt/kafka/zookeeper/zookeeper-3.6.3
[root@VM-4-12-centos zookeeper-3.6.3]# ./bin/zkServer.sh status ./conf/zoo.cfg
ZooKeeper JMX enabled by default
Using config: ./conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower

10、接下来是正式环节,搭建kafka集群

[root@VM-4-2-centos zookeeper-3.6.3]# cd /opt/kafka/
[root@VM-4-2-centos kafka]# ll
total 96716
-rw-r--r-- 1 root root 12516362 May 31 17:33 apache-zookeeper-3.6.3-bin.tar.gz
-rw-r--r-- 1 root root 86512293 Apr 10 00:46 kafka_2.13-3.0.1.tgz
drwxr-xr-x 3 root root     4096 Jun  1 07:39 zookeeper

11、解压kafka,然后重命名

[root@VM-4-2-centos kafka]# tar -zxvf kafka_2.13-3.0.1.tgz 
[root@VM-4-2-centos kafka]# mv kafka_2.13-3.0.1 kafka

12、进入kakfa,创建log文件夹

[root@VM-4-2-centos kafka]# cd kafka/
[root@VM-4-12-centos kafka]# mkdir log
[root@VM-4-12-centos kafka]# ll
total 68
drwxr-xr-x 3 root root  4096 Mar  4 00:20 bin
drwxr-xr-x 3 root root  4096 Mar  4 00:20 config
drwxr-xr-x 2 root root  4096 Jun  1 08:26 libs
-rw-r--r-- 1 root root 14587 Mar  4 00:15 LICENSE
drwxr-xr-x 2 root root  4096 Mar  4 00:20 licenses
drwxr-xr-x 2 root root  4096 Jun  1 08:34 log
-rw-r--r-- 1 root root 28184 Mar  4 00:15 NOTICE
drwxr-xr-x 2 root root  4096 Mar  4 00:20 site-docs

13、修改kafka配置,broker.id 不同服务器 分别为1 、2 、3

[root@VM-4-12-centos kafka]# vi config/server.properties 
broker.id=1

listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://101.35.245.191:9092

log.dirs=/opt/kafka/kafka/log

# topic 在当前broker上的分片个数,与broker保持一致
num.partitions=3

# 设置zookeeper集群地址与端口如下:
zookeeper.connect=tencent01:2181,tencent02:2181,tencent03:2181

14、启动kafka集群

[root@VM-4-12-centos kafka]# ./bin/kafka-server-start.sh -daemon ./config/server.properties &

15、查看,没有问题

[root@VM-4-2-centos kafka]# jps  
112519 Jps
112361 Kafka
109642 QuorumPeerMain
[root@VM-4-12-centos kafka]# lsof -i:9092
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    32026 root  134u  IPv6 180770      0t0  TCP *:XmlIpcRegSvc (LISTEN)
java    32026 root  153u  IPv6 182221      0t0  TCP VM-4-12-centos:nimhub->tencent02:XmlIpcRegSvc (ESTABLISHED)
java    32026 root  154u  IPv6 180774      0t0  TCP VM-4-12-centos:XmlIpcRegSvc->tencent02:nimhub (ESTABLISHED)
java    32026 root  158u  IPv6 181065      0t0  TCP VM-4-12-centos:51164->tencent01:XmlIpcRegSvc (ESTABLISHED)

16、然后我们连接上kafka,新建一个topic
–replication-factor 2 两个副本
–partitions 1 一个分区
–topic test 一个test主题

[root@VM-4-2-centos kafka]# cd /opt/kafka/kafka/
[root@VM-4-2-centos kafka]# ./bin/kafka-topics.sh --create --replication-factor 2 --partitions 1 --topic test --bootstrap-server 101.35.245.191:9092

17、切换到第二台服务器,查看主题是否创建成功

[root@VM-4-12-centos zookeeper-3.6.3]# cd /opt/kafka/kafka/
[root@VM-4-12-centos kafka]# ./bin/kafka-topics.sh --list --bootstrap-server 101.35.245.191:9092
test

18、启动生产者

[root@VM-4-2-centos kafka]# ./bin/kafka-console-producer.sh --broker-list tencent01:9092 --topic test

19、启动消费者,第二台和第三台服务器

./bin/kafka-console-consumer.sh --bootstrap-server tencent02:9092 --topic test
./bin/kafka-console-consumer.sh --bootstrap-server tencent03:9092 --topic test

20、生产者发送消息,接收者接收消息,成功!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
21、至此,整个kafka集群搭建完毕,最后,各位小伙伴们,麻烦给老哥一个点赞、关注、收藏三连好吗,你的支持是老哥更新最大的动力,谢谢!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 搭建Kafka集群,最新教程,细到极致 的相关文章

  • 在 execl 在输出中不可见之前打印

    include
  • Xvfb 冻结初始化 GLX 扩展

    我正在尝试运行无头 Xvfb 服务器来捕获 Amazon EC2 micro 上的屏幕截图 但它在 GLX 上陷入了困境 我使用此脚本安装了 GLX Xvfb 和所有库 https gist github com joekiller 414
  • Bash:检查是否给出了参数(例如是否有参数“-a”?)

    我有一个脚本 它应该接受 2 个参数 s 和 d 如果未给出 d 参数 我想删除我的调试文件 与 s 相同 如何检查 1 或 2 是否为 s 或 d 舒尔有两个参数 我可以做到 蛮力 if test 1 d test 2 d then rm
  • 段错误...关于你好世界

    这段代码非常简单 但我在 x86 64 Linux 系统上遇到了段错误 这让我很烦恼 刚开始接触asm 请耐心等待 与 NASM 组装nasm f elf64 test asm 与连接ld o test test o SECTION tex
  • Qt 嵌入式触摸屏 QMouseEvents 在收到 MouseButtonRelease 之前未收到

    我在带有触摸屏的小型 ARM 嵌入式 Linux 设备上使用 Qt 4 8 3 我的触摸屏配置了 tslib 并对其进行了校准 因此 etc 中有一个 pointcal 文件 我的触摸事件的位置工作得很好 但无论如何我都会在鼠标按下或鼠标释
  • 如何通过ssh获取远程命令的退出代码

    我正在通过 ssh 从远程计算机运行脚本 ssh some cmd my script 现在 我想在本地计算机上存储 shell 脚本的退出状态 我该怎么做 假设没有任何问题ssh其本身 其退出状态是在远程主机上执行的最后一个命令的退出状态
  • PIL 的 Image.show() 带来*两个*不同的查看器

    在 python shell 中处理图像时 我使用 image show 其中 image 是 Image 的实例 很久以前什么也没发生 但在定义了一个名为 xv 的 Mirage 符号链接后 我很高兴 最近几天 show 将显示 Imag
  • 如何在Linux上用C/C++编写Web服务器[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在考虑在 Linux 平台上开发一个小型 阅读 初级 Web 服务器 但我不知道从哪里开始 我希望它能够做的是 监听特定端口 接受
  • 对于任何真实数据集,数据压缩比的最小可能值是多少

    我在写信ZLIB类似于嵌入式硬件压缩器的 API 它使用 deflate 算法来压缩给定的输入流 在进一步讨论之前 我想解释一下数据压缩率 数据压缩率定义为未压缩大小与压缩大小之间的比率 压缩比通常大于一 这意味着压缩数据通常比未压缩数据小
  • 使用 shell 脚本发送 HTML 邮件

    如何使用 shell 脚本发送 HTML 电子邮件 首先 您需要撰写消息 最低限度由这两个标头组成 MIME Version 1 0 Content Type text html 以及适当的消息正文 p Hello world p 获得后
  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • Docker忽略limits.conf(试图解决“打开文件太多”错误)

    我正在运行一个 Web 服务器 该服务器正在处理数千个并发 Web 套接字连接 为了实现这一点 在 Debian linux 我的基本镜像是 google debian wheezy 在 GCE 上运行 上 打开文件的默认数量设置为 100
  • Ruby:在 Ubuntu 上安装 rmagick

    我正在尝试在 Ubuntu 10 04 上安装 RMagick 看起来here https stackoverflow com questions 1482823 is there an easy way to install rmagic
  • Crontab 每 5 分钟一次 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我如何告诉 crontab 每 5 分钟运行一次 但从每小时的第二分钟开始 换句话说 我想在以下时间执行我的脚本minute 5 2 例如 我的脚本应
  • 在 x86 汇编语言中获取文件大小的简单方法

    假设我已经在汇编中打开了一个文件 并且在寄存器 eax 中有该文件的文件句柄 我将如何获取文件的大小 以便为其分配足够的缓冲区空间 我在这里研究了另一个讨论 建议使用sys fstat 28 系统调用来获取文件统计信息但无法实现它 My a
  • /sys/device/ 和 dmidecode 报告的不同 CPU 缓存大小

    我正在尝试获取系统中不同缓存级别的大小 我尝试了两种技术 a 使用 sys device 中的信息 这是输出 cat sys devices system cpu cpu0 cache index1 size 32K cat sys dev
  • Ubuntu Python shebang 线不工作

    无法让 shebang 线在 Ubuntu 中为 python 脚本工作 我每次只收到命令未找到错误 test py usr bin env python print Ran which python usr bin python 在 sh
  • grep 排除文件的数组参数

    我想从我的文件中排除一些文件grep命令 为此我使用参数 exclude excluded file ext 为了更容易阅读 我想使用包含排除文件的 bash 数组 EXCLUDED FILES excluded file ext 然后将
  • 在 docker 中重定向命令输出

    我想为我的服务器做一些简单的日志记录 它是一个在 Docker 容器中运行的小型 Flask 应用程序 这是 Dockerfile Dockerfile FROM dreen flask MAINTAINER dreen WORKDIR s
  • vmsplice() 和 TCP

    在原来的vmsplice 执行 有人建议 http lwn net Articles 181169 如果您的用户态缓冲区是管道中可容纳的最大页面数的 2 倍 则缓冲区后半部分成功的 vmsplice 将保证内核使用缓冲区的前半部分完成 但事

随机推荐

  • Java-接口

    Java 接口 1 概念 接口和类是平级的关系 举例以下 学习就是一个接口 可以飞 攻击性都是接口 2 接口的使用 接口使用interface关键词来定义 定义接口的结构 JDK1 7及以前 只能全局常量和抽象方法 全局常量 public
  • 用Groovy写Servlet

    本文参考自Servlet support 大部分代码引用了原文档 快速开始 Groovy语言提供了一个模块 可以让我们写用Groovy脚本的方式来编写Servlet 这叫做Groovlets 先看看一个简单的例子吧 下面这几个例子都来自官方
  • webpack&vite

    webpack支持多模块化 可以跑在服务端 一开始就要同一模块化代码 所以他需要把所有依赖读取一遍 并且转化为对应的代码 然后再去开启开发服务器 ast抽象语法分析工具 分析你写的文件有啥导入导出 vite只支持es module 只跑在浏
  • 五个温度带的分界线_中国划分为哪五个个温度带

    展开全部 在我国 从北到南习惯上划分为寒温带 中温带 暖温62616964757a686964616fe59b9ee7ad9431333366303732带 亚热带 热带 1 秦岭淮河线以南 主要是我国的亚热带和热带地区 一般亚热带位于温带
  • qt编写的简单日历控件lan2calendar

    使用中的一些bug可以反馈一下 项目地址 https gitee com mengtianwxs lan2calendar
  • 论文笔记:Autoregressive Tensor Factorizationfor Spatio-temporal Predictions

    0 摘要 张量因子tensor factorization分解方法在时空数据分析领域很受欢迎 因为它们能够处理多种类型的时空数据 处理缺失值 并提供计算效率高的参数估计程序 然而 现有的张量因子分解方法并没有尝试学习空间自相关 这些方法使用
  • snprintf函数和sprintf函数

    今天写代码 做字符串处理 写了以下语句 snprintf loginTime sizeof loginTime s s loginTime blankSpace 然后loginTime中的字符串老不对 记得以前用sprintf的时候 类似语
  • CISCN部分WP-ukfc

    WP ukfc 讲个笑话 华北19进不了决赛 再讲个笑话 27号黑灯 国粹过了300出头 努什么力 不如去海鲜市场 Web unzip L zip bello var www html R zip bello bello php 先传入L文
  • 51单片机在中断响应时,系统不能自动清除哪些中断请求标志?编程时应如何处理?...

    51单片机在中断响应时 系统不会自动清除中断请求标志 因此 程序员需要在编写的中断服务程序中手动清除相应的中断请求标志 这可以通过使用汇编指令或 C 语言函数来实现 在汇编语言中 可以使用 CLR bit 指令来清除某一位 在 C 语言中
  • linux中$0、$?、$*、$@、$#、$$

    0 shell脚本名 1 执行shell脚本传的第一个参数 n 第n个参数 上一条命令的执行状态 0为成功 执行shell脚本传的所有参数 同上 所在命令的PID test sh bin sh echo hello echo filenam
  • 接口测试全流程总结

    接口测试全流程扫盲 接口测试全流程扫盲 扫盲内容 1 什么是接口 2 接口都有哪些类型 3 接口的本质是什么 4 什么是接口测试 5 问什么要做接口测试 6 怎样做接口测试 7 接口测测试点是什么 8 接口测试都要掌握哪些知识 9 其他相关
  • 二进制补码的理解

    正数的原码 反码 补码 负数的原码 反码 补码关系为 原码 正数的原码符号位变为1 反码 正数的原码取反 补码 正数的原码取反加1 补码主要为了计算机进行减法运算 参考1 https www cnblogs com guanjianzhuo
  • 读QT5.7源码(七)QObjectData 和 QObjectPrivate

    在QObject中定义了一个保护权限的成员变量 d ptr protected QScopedPointer
  • docker快速部署java+nginx+mysql运行环境

    docker快速部署java nginx mysql运行环境 我们在工作中会经常遇到快速部署项目的需求 如果采用纯手动搭建将会是一件非常麻烦的事情 尤其是在Linux服务器上 它牵扯到基础环境安装及配置等繁琐的步骤 本文将介绍一种docke
  • 【蓝桥杯每日一练:乘积尾零】

    问题描述 给10行数据 每行有10个整数 请你求出它们的乘积的末尾有多少个零 输入格式 给10行数据 每行有10个整数 输出格式 输出一个整数表示答案 输入样例 5650 4542 3554 473 946 4114 3871 9073 9
  • 网络应急响应流程

    网络应急响应流程及工作内容 What is 应急响应对应的英文是 Incident response或emergency responcse 通常是指一个组织为了应对各种意外事件的发生所做的准备以及在事件发生后所采取的措施 当企业发生黑客入
  • 此主机支持 AMD-V,但 AMD-V 处于禁用状态

    此主机支持 AMD V 但 AMD V 处于禁用状态问题解决 文章目录 此主机支持 AMD V 但 AMD V 处于禁用状态问题解决 1 问题原因 2 解决办法 1 问题原因 我win 10 系统电脑安装VMware虚拟机后 在启动虚拟机时
  • python读写文件,和设置文件的字符编码比如utf-8

    一 python打开文件代码如下 f open d test txt w 说明 第一个参数是文件名称 包括路径 第二个参数是打开的模式mode r 只读 缺省 如果文件不存在 则抛出错误 w 只写 如果文件不存在 则自动创建文件 a 附加到
  • java暂存

    public class Main public static void main String args String m Integer toBinaryString 120 System out println m int ss In
  • Linux 搭建Kafka集群,最新教程,细到极致

    大家好呀 今天给大家带来的是 最新版kafka集群的安装教程 希望给小伙伴们一点小小的帮助 注意 提前安装好jdk Jdk安装教程 1 准备安装包 Kafka官网下载 2 kafka安装需要zk 注意 kafka安装版本和zk版本要一致 下