kafka集群部署搭建【详细版】

文章目录

  • 前言
  • 一、环境简介
    • 1.环境简介
    • 2.部署清单
    • 3.组件版本
  • 二、部署步骤
    • 1.jdk部署
    • 2.zookeeper安装
      • 2.1 cnode1节点
      • 2.2 cnode2 节点
      • 2.3 cnode3节点
    • 3.kafka安装
      • 3.1 cnode1节点
      • 3.2 cnode2节点
      • 3.3 cnode3节点
  • 三、服务启动
  • 四、总结


前言

因项目需要,需搭建kafka集群进行验证工作。


一、环境简介

系统环境真的很重要,这会影响排查问题的效率。但是大部分博客编写的时候基本上都没有记录这些,这就会导致有些命令不是共通的。

1.环境简介

#1 系统版本
[root@cnode1][/opt]
$cat /etc/redhat-release 
CentOS Linux release 7.7.1908 (Core)#2 jdk版本
[root@cnode1][/opt]
$java -version
java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)

2.部署清单

序号IP主机名部署服务
1192.168.56.101cnode1jdk,zookeeper,kafka
2192.168.56.103cnode2jdk,zookeeper,kafka
3192.168.56.104cnode3jdk,zookeeper,kafka

3.组件版本

组件名称版本
jdk1.8.0_271
zookeeperkafka内置版本
kafka2.12-3.6.0

二、部署步骤

1.jdk部署

因为jdk很常见了,详细部署步骤不做记录,只记录配置信息

[root@cnode1][~]
$ cat /etc/profile
export JAVA_HOME=/usr/lib/java/jdk1.8.0_271
export CLASSPATH=.:$JAVA_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH[root@cnode1][~]
$ java -version
java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)

2.zookeeper安装

2.1 cnode1节点

#1 下载安装包
[root@cydocker][~/package]
$ wget https://downloads.apache.org/kafka/3.6.0/kafka_2.12-3.6.0.tgz#2 解压缩
[root@cnode1][~/package]
$ tar -xzvf kafka_2.12-3.6.0.tgz#3 移动
[root@cnode1][~/package]
$ mv kafka_2.12-3.6.0 /opt/kafka[root@cnode1][~/package]
$ ll /usr/local/kafka#4 创建存储目录
mkdir -p /opt/software/kafka/log
mkdir -p /opt/software/kafka/zookeeper#5 修改配置文件
[root@cnode1][/opt/kafka_2.12-3.6.0/config]
$ vim zookeeper.properties 
dataDir=/opt/software/kafka/zookeeper  
dataLogDir=/opt/software/kafka/zookeeper/log 
clientPort=2181
maxClientCnxns=100
tickTimes=2000
initLimit=10
syncLimit=5
server.0=192.168.56.101:2888:3888
server.1=192.168.56.103:2888:3888
server.2=192.168.56.104:2888:3888#6 编写myid
[root@cnode1][/opt/kafka_2.12-3.6.0/config]
$vim/opt/software/kafka/zookeeper/myid
0#7 分发到cnode2和cnode3
[root@cnode1][/opt]
$ scp -r kafka_2.12-3.6.0 root@cnode2:$PWD[root@cnode1][/opt]
$ scp -r kafka_2.12-3.6.0 root@cnode3:$PWD

2.2 cnode2 节点

#1 进入到指定目录
[root@cnode2][/opt/kafka_2.12-3.6.0/config]
$cd /opt/kafka_2.12-3.6.0/config#2 创建存储目录
mkdir -p /opt/software/kafka/log
mkdir -p /opt/software/kafka/zookeeper#3 修改myid
[root@cnode2][/opt/kafka_2.12-3.6.0/config]
$vim /opt/software/kafka/zookeeper/myid
1

2.3 cnode3节点

#1 进入到指定目录
[root@cnode3][/opt/kafka_2.12-3.6.0/config]
$cd /opt/kafka_2.12-3.6.0/config#2 创建存储目录
mkdir -p /opt/software/kafka/log
mkdir -p /opt/software/kafka/zookeeper#3 修改myid
[root@cnode3][/opt/kafka_2.12-3.6.0/config]
$vim /opt/software/kafka/zookeeper/myid
2

3.kafka安装

3.1 cnode1节点

#1 进入到指定目录
[root@cnode1][/opt/kafka_2.12-3.6.0/config]
$cd /opt/kafka_2.12-3.6.0/config#2 配置如下:大家需要修改自己的实际ip
[root@cnode1][/opt/kafka_2.12-3.6.0/config]
$cat server.properties |grep -v "^#\|^$"
broker.id=0
listeners=PLAINTEXT://192.168.56.101:9092
advertised.listeners=PLAINTEXT://192.168.56.101:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.retention.check.interval.ms=300000
zookeeper.connect=192.168.56.101:2181,192.168.56.103:2181,192.168.56.104:2181
zookeeper.connection.timeout.ms=18000
group.initial.rebalance.delay.ms=0

3.2 cnode2节点

#1 进入到指定目录
[root@cnode2][/opt/kafka_2.12-3.6.0/config]
$cd /opt/kafka_2.12-3.6.0/config#2 配置如下:大家需要修改自己的实际ip
[root@cnode2][/opt/kafka_2.12-3.6.0/config]
$cat server.properties |grep -v "^#\|^$"
broker.id=1
listeners=PLAINTEXT://192.168.56.103:9092
advertised.listeners=PLAINTEXT://192.168.56.103:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.retention.check.interval.ms=300000
zookeeper.connect=192.168.56.101:2181,192.168.56.103:2181,192.168.56.104:2181
zookeeper.connection.timeout.ms=18000
group.initial.rebalance.delay.ms=0

3.3 cnode3节点

#1 进入到指定目录
[root@cnode3][/opt/kafka_2.12-3.6.0/config]
$cd /opt/kafka_2.12-3.6.0/config#2 配置如下:大家需要修改自己的实际ip
[root@cnode2][/opt/kafka_2.12-3.6.0/config]
$cat server.properties |grep -v "^#\|^$"
broker.id=2
listeners=PLAINTEXT://192.168.56.104:9092
advertised.listeners=PLAINTEXT://192.168.56.104:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.retention.check.interval.ms=300000
zookeeper.connect=192.168.56.101:2181,192.168.56.103:2181,192.168.56.104:2181
zookeeper.connection.timeout.ms=18000
group.initial.rebalance.delay.ms=0

三、服务启动

#1 将启动和关闭服务写成脚本
[root@cnode1][/opt/kafka_2.12-3.6.0]
$ ll
-rwxrwxrwx 1 root root   215 Nov 14 11:40 kafkaStart.sh
-rwxrwxrwx 1 root root   211 Nov 13 16:33 kafkaStop.sh#1.1 zk和kafka服务启动脚本
[root@cnode1][/opt/kafka_2.12-3.6.0]
$ cat kafkaStart.sh
/opt/kafka_2.12-3.6.0/bin/zookeeper-server-start.sh /opt/kafka_2.12-3.6.0/config/zookeeper.properties &
sleep 10 
/opt/kafka_2.12-3.6.0/bin/kafka-server-start.sh /opt/kafka_2.12-3.6.0/config/server.properties &#1.2 zk和kafka服务关闭脚本
[root@cnode1][/opt/kafka_2.12-3.6.0]
$cat kafkaStop.sh 
/opt/kafka_2.12-3.6.0/bin/zookeeper-server-stop.sh /opt/kafka_2.12-3.6.0/config/zookeeper.properties &
sleep 3 
/opt/kafka_2.12-3.6.0/bin/kafka-server-stop.sh /opt/kafka_2.12-3.6.0/config/server.properties &#2 分发到其他节点并启动服务
[root@cnode1][/opt/kafka_2.12-3.6.0]
$ scp kafkaStart.sh kafkaStop.sh root@cnode2:$PWD[root@cnode1][/opt/kafka_2.12-3.6.0]
$ scp kafkaStart.sh kafkaStop.sh root@cnode3:$PWD#3 服务启动(3个节点都执行)
[root@cnode1][/opt/kafka_2.12-3.6.0]
$ sh /opt/kafka_2.12-3.6.0/kafkaStart.sh#4 服务验证
[root@cnode2][/opt/kafka_2.12-3.6.0]
$jps

四、总结

至此,kafka集群搭建完毕,大家如果有什么疑问,请及时和我沟通交流。

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

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

相关文章

c#基本数据类型占用字节长度/取值范围/对应.net类型

具体前往:c#基本数据类型占用字节数/取值范围/包装类-各基本类型.net类型,占用bit位数,默认值及取值范围

多品牌NVR管理工具/设备EasyNVR多个NVR同时管理支持RTSP接入

在当今数字化浪潮席卷全球的背景下,视频监控行业正经历着前所未有的变革。传统的本地录像存储模式正逐步向云端集中管理转型,这一技术的飞跃不仅极大地提升了监控效率与安全性,更为各行各业的智能化管理开辟了新路径。在这一转型过程中&#…

初学者指南:知识库问答(KBQA)多跳路径的核心与应用

初学者指南:知识库问答(KBQA)多跳路径的核心与应用 知识库问答(Knowledge Base Question Answering, KBQA)旨在利用结构化知识库(如Wikidata、Freebase)回答自然语言问题。在实际应用中&#x…

利用Python爬虫获取淘宝店铺详情

在数字化时代,数据已成为企业最宝贵的资产之一。对于电商平台,尤其是淘宝这样的大型电商平台,店铺详情数据的获取和分析对于商家来说至关重要。它不仅可以帮助商家了解市场趋势,还可以优化营销策略,提升销售业绩。本文…

卡尔曼滤波学习资料汇总

卡尔曼滤波学习资料汇总 其实,当初的目的,是为了写 MPU6050 的代码的,然后不知不觉学了那么多,也是因为好奇、感兴趣吧 有些还没看完,之后笔记也会同步更新的 学习原始材料 【卡尔曼滤波器】1_递归算法_Recursive P…

【HCIP]——OSPF综合实验

题目 实验需求 根据上图可得,实验需求为: 1.R5作为ISP:其上只能配置IP地址;R4作为企业边界路由器,出口公网地址需要通过PPP协议获取,并进行CHAP认证。(PS:因PPP协议尚未学习&#…

MarkDown笔记记录app——待更新

1,语雀: 容易整理,直接上手,直接导出到csdn或者是github中 2,notion:注意及时清理 平时主要资料整理部分,注意每个page里面包含子page不能超过5MB, 所有的老资料笔记需要导出为htm…

vxe-table 4.9+ 实现在表格列中直接拖拽排序,列拖拽排序

Vxe UI vue vxe-table v4.9 实现在表格列中直接拖拽排序,列拖拽排序 安装 npm install vxe-pc-ui4.3.3 vxe-table4.9.0main.js // ... import VxeUI from vxe-pc-ui import vxe-pc-ui/lib/style.css import VxeUITable from vxe-table import vxe-table/lib/styl…

《勇者斗恶龙3:HD-2D重制版》找幽灵船攻略分享

《勇者斗恶龙3:HD-2D重制版》中的幽灵船是游戏里非常独特的一个区域,而想要找到幽灵船的话还是比较麻烦的,首先是听到关于幽灵船在世界海域上航行的传闻,包括在海盗巢穴中,但幽灵船的出现有一些具体条件。 勇者斗恶龙3…

《通往人工智能深度学习专家之路:全面解析学习路线图》

《通往人工智能深度学习专家之路:全面解析学习路线图》 一、人工智能深度学习简介1.1 人工智能与深度学习的关系1.2 深度学习的应用领域1.3 深度学习的重要性 二、深度学习路线图总览2.1 学习路线图的结构2.2 各阶段学习目标与重点 三、深度学习基础阶段3.1 数学基础…

力扣题解661 图片平滑器

题目(简单) 图像平滑器 是大小为 3 x 3 的过滤器,用于对图像的每个单元格平滑处理,平滑处理后单元格的值为该单元格的平均灰度。 每个单元格的 平均灰度 定义为:该单元格自身及其周围的 8 个单元格的平均值&#xff0c…

基于SpringBoot的“致远汽车租赁系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“致远汽车租赁系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 致远汽车租赁系统总体功能模块图 系统首页界面…

DSP28335 DMA 官方例程解析以及拓展(一)

文章目录 概述官方例程1 内部RAM to RAM Example_2833xDMA_ram_to_ram源码解析 要点方法拓展 外部固定地址 TO RAM完整程序: 对DMA 和 DMA有关的API请看这篇文章 DSP28335 DMA API介绍 概述 本篇主要分析官方提供的28335 DMA 有关的例程 在此基础上有一定的拓展 官方例程1 内…

【Java SE】JDBC

JDBC(Java DataBase Connectivity)是一套用于在 Java 中操作关系型数据库的 API。它允许开发者使用统一的 Java 代码来访问不同的关系型数据库。 JDBC 的本质:JDBC 是由官方(Sun 公司)定义的一套接口规范,…

西电数据库课设|设计学籍管理系统

前言:ER图和逻辑结构图不准确,因为在后期实际建表的过程中有改动,去除了一些列和外键关系,但是我懒得返回去改图了,所以还是需要自己情况画图,还有学生信息我忘记加性别什么的,这个比较简单&…

优维HAO案例:500强旗下全牌照综合性券商CMDB平台项目

撰文:鹿小U / 制图:脾气超好 某中国500强集团旗下的HS公司,是一家具有一定行业影响力的综合性证券公司。在近年来的发展进程中,该公司坚定不移地持续推进财富管理转型工作,将 ETF 的财富管理以及机构经纪业务作为公司…

github进不去解决办法-误打误撞进去了

我的要求不高,就算麻烦,只要能进去就行,但是我找了很多的办法,xbox下载助手、watt Toolkit、更改host文件、fastgithub…最终还是没有用 绝望之际随便进了一个当时找的fastgithub连接 结果显示不是专用链接 然后看了该博主的文章…

RHCE——WEB服务器的部署及优化

URL组成 <scheme>://<user>:<password><host>:<port>/<path>:<params>?<query>#<frag> scheme 方案 访问服务器以获取资源时要使用哪种协议 user 用户 某些方案访问资源时需要的用户名 pass…

day03(单片机高级)RTOS

目录 RTOS(实时操作系统) 裸机开发模式 轮询方式 前后台&#xff08;中断方式&#xff09; 改进&#xff08;前后台&#xff08;中断&#xff09;&#xff09;定时器 裸机进一步优化 裸机的其他问题 RTOS的概念 什么是RTOS 为什么要使用 RTOS RTOS的应用场景 RTOS的…

基于SSM的毕业论文管理系统【附源码】

基于SSM的毕业论文管理系统&#xff08;源码L文说明文档&#xff09; 目录 4 系统设计 4.1 系统结构设计 4.2 系统顺序图设计 4.3 系统数据库设计 5 系统的实现 5.1 登录模块的实现 5.2 学生管理模块的实现 5.3 导师管理模块的实现 5.4 课题管理模块的实现 …