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集群,最新教程,细到极致 的相关文章

  • 让 MongoDB 在 Linux 上监听远程连接

    我已在 Windows 本地计算机上 上成功安装 MongoDB 作为服务 但现在我想将 MongoDb 移动到单独的服务器 所以我将 tarball 解压到网络上的虚拟服务器 运行 Linux 当我从本地计算机使用 PuTTY 连接到服务
  • 在主目录中安装库

    在 Linux Ubuntu 中 我尝试运行一个工具 但它显示错误 库丢失 我无权在系统中安装任何内容 或者根本无法从我的用户帐户执行 sudo 是否可以在我的主目录 没有 sudo 中安装缺少的库 在我的例子中为 libstdc so 6
  • 并行运行 make 时出错

    考虑以下制作 all a b a echo a exit 1 b echo b start sleep 1 echo b end 当运行它时make j2我收到以下输出 echo a echo b start a exit 1 b star
  • 在 Linux 中禁用历史记录 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 要在 Linux 环境中禁用历史记录 我执行了以下命令 export HISTFILESIZE 0 export HISTSIZE 0 u
  • 何时使用 pthread 条件变量?

    线程问题 看来 只有在其他线程调用 pthread cond notify 之前调用 pthread cond wait 时 条件变量才起作用 如果在等待之前发生通知 那么等待将被卡住 我的问题是 什么时候应该使用条件变量 调度程序可以抢占
  • Unix 命令列出包含字符串但*不*包含另一个字符串的文件

    如何递归查看包含一个字符串且不包含另一个字符串的文件列表 另外 我的意思是评估文件的文本 而不是文件名 结论 根据评论 我最终使用了 find name html exec grep lR base maps xargs grep L ba
  • 从 PL/SQL 调用 shell 脚本,但 shell 以 grid 用户而非 oracle 身份执行

    我正在尝试使用 Runtime getRuntime exec 从 Oracle 数据库内部执行 shell 脚本 在 Red Hat 5 5 上运行的 Oracle 11 2 0 4 EE CREATE OR REPLACE proced
  • 是否可以在Linux上将C转换为asm而不链接libc?

    测试平台为Linux 32位 但也欢迎 Windows 32 位上的某些解决方案 这是一个c代码片段 int a 0 printf d n a 如果我使用 gcc 生成汇编代码 gcc S test c 然后我会得到 movl 0 28 e
  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh
  • 强制卸载 NFS 安装目录 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案
  • 如何使用 xterm.js 创建基于 Web 的终端以 ssh 进入本地网络上的系统

    我偶然发现了这个很棒的图书馆xterm js https xtermjs org 这也是 Visual Studio Code 终端的基础 我有一个非常普遍的问题 我想通过基于网络的终端 不在网络中 可能位于 aws 服务器上 访问本地网络
  • 从 csv 文件中删除特定列,保持输出上的相同结构[重复]

    这个问题在这里已经有答案了 我想删除第 3 列并在输出文件中保留相同的结构 输入文件 12 10 10 10 10 1 12 23 1 45 6 7 11 2 33 45 1 2 1 2 34 5 6 I tried awk F 3 fil
  • 如何在 shell 脚本中并行运行多个实例以提高时间效率[重复]

    这个问题在这里已经有答案了 我正在使用 shell 脚本 它读取 16000 行的输入文件 运行该脚本需要8个多小时 我需要减少它 所以我将其划分为 8 个实例并读取数据 其中我使用 for 循环迭代 8 个文件 并在其中使用 while
  • 如何查明CONFIG_FANOTIFY_ACCESS_PERMISSIONS是否启用?

    我想利用fanotify 7 http man7 org linux man pages man7 fanotify 7 html我遇到的问题是在某些内核上CONFIG FANOTIFY ACCESS PERMISSIONS不起作用 虽然C
  • chown:不允许操作

    我有问题 我需要通过 php 脚本为系统中的不同用户设置文件所有者权限 所以我通过以下命令执行此操作 其中 1002 是系统的用户 ID file put contents filename content system chown 100
  • sendfile64 只复制约2GB

    我需要使用 sendfile64 复制大约 16GB 的文件 到目前为止我所取得的成就是 include
  • 使用 sed 更新 xml 属性(Windows + cygwin 和 Linux)?

    我需要使用 sed 命令对 xml 文件进行更新 但我在这方面遇到了麻烦 它需要在 Windows 使用 cygwin 和 Linux 上运行 XML 具有以下元素
  • 加载数据infile,Windows和Linux的区别

    我有一个需要导入到 MySQL 表的文件 这是我的命令 LOAD DATA LOCAL INFILE C test csv INTO TABLE logs fields terminated by LINES terminated BY n
  • 如何有效截断文件头?

    大家都知道truncate file size 函数 通过截断文件尾部将文件大小更改为给定大小 但是如何做同样的事情 只截断文件的尾部和头部呢 通常 您必须重写整个文件 最简单的方法是跳过前几个字节 将其他所有内容复制到临时文件中 并在完成
  • 无法使用 wget 在 CentOS 机器上安装 oracle jdk

    我想在CentOS上安装oracle java jdk 8 我无法安装 java jdk 因为当我尝试使用命令安装 java jdk 时 root ADARSH PROD1 wget no cookies no check certific

随机推荐

  • 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版本要一致 下