首页 > 其他分享 >部署一个3节点的Kafka集群

部署一个3节点的Kafka集群

时间:2024-11-15 17:46:09浏览次数:3  
标签:-- zookeeper 192.168 kafka sh 集群 Kafka 节点

前提条件:
已经安装了 Java 环境(Kafka 是基于 Java 开发的)。
已经有三台独立的服务器(节点),每台服务器相互做地址解析。
一 Java环境部署:
  1.1 官网下载jdk
Java下载官网
https://www.oracle.com/cn/java/technologies/javase/javase8u211-later-archive-downloads.html

  1.12 解压jdk到/usr/local/下
tar -xzvf jdk-8u381-linux-x64.tar.gz -C /usr/local
  1.13 配置环境变量
vim /etc/profile进入编辑模式后,在末尾加入这段(JAVA_HOME为安装路径,:为分隔作用)
 
export JAVA_HOME=/usr/local/jdk1.8.0_381
export PATH=$PATH:$JAVA_HOME/bin           #将java中bin目录追加到原PATH变量中
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  #配置类文件路径
export JRE_HOME=$JAVA_HOME/jre     #某些程序需要使用JAVA运行环境
  1.14 重新加载配置并测试
source /etc/profile
java -version  #出现版本即为成功
  1.2 三台节点相互做主机名解析
vim /etc/hosts
192.168.10.110 kafka-110        ##这里映射的主机名可与/etc/hostname中的不同
192.168.10.119 kafka-119
192.168.10.120 kafka-120
###这个文件的作用是进行本地解析:将ip映射到域名或者主机名
当系统需要解析主机名时先访问该文件,主要在局域网且没有可用DNS服务器时使用
二 部署kafka集群步骤:每台节点都进行以下操作
  2.1 下载 Kafka:

kafka下载官网
https://kafka.apache.org/downloads
  下载需要的 Kafka 版本,命名规则:kafka_Scala版本-kafka版本

  2.2 解压 Kafka:
将下载的 Kafka 压缩包解压到每一台服务器上,得到 Kafka 的安装目录。
tar -xvf kafka_2.11-0.10.0.1.tgz -C /opt/
  2.3 配置 ZooKeeper:Kafka 集群依赖 ZooKeeper,因此需要配置 ZooKeeper。
   2.31 下载 zookeeper-3.5.4-beta.tar.gz,并解压到/opt/
   0.1.1前版本必带参数--zookeeper,之后的新版本必带参数--bootstrp-server

zookeeper下载
https://archive.apache.org/dist/zookeeper/

 tar -zxvf zookeeper-3.5.4-beta.tar.gz -C /opt/
 tips:工作环境中一般解压到/usr/local(/usl/local为标准安装目录,是全局目录所有用户都可访问)

   2.32 编辑配置文件
cd /opt/zookeeper-3.5.4-beta/conf/
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
tickTime=2000                #定义zk使用基本时间单位(以毫秒为单位)
initLimit=10                 #定义leader和follower启动过程中时间限制
syncLimit=5                  #定义leader和follower之间的通信时限,规定响应时间
dataDir=/opt/zoo/data        #定义zk的数据存储目录
clientPort=2181              #定义zk用于接收客户端连接的端口
maxClientCnxns=500           #定义每个客户端 IP 地址允许建立的最大连接数
 
server.0=192.168.10.110:2888:3888
server.1=192.168.10.119:2888:3888
server.2=192.168.10.120:2888:3888   
 
#格式:server.<ID>=<hostname>:<peerPort>:<leaderPort>
#hostname:可为/etc/hosts中的ip或主机名 peerPort:服务器之间通信端口 leaderPort:选举leader端口
 
mkdir -p /opt/zoo/{data,logs}
vim /opt/zoo/data/myid                   #定义zk节点唯一标识(ID),和配置文件对应
三台机器的myid分别写入0,1,2
    2.33 启动zookeeper
 cd /opt/zookeeper-3.5.4-beta/bin/
 ./zkServer.sh start
# 查看启动状态
sh zkServer.sh status
#关闭
 ./zkServer.sh stop
  2.4 配置 Kafka:

   2.41修改配置文件
vim /opt/kafka_2.11-0.10.0.1/config/zookeeper.properties 
 
dataDir=/opt/zoo/data
#该目录是zookeeper配置的数据存放目录
vim /opt/kafka_2.11-0.10.0.1/config/server.properties
 
broker.id=0
#分别为0,1,2
#本机IP(kafka的监听地址和外界连接地址,)
listeners=PLAINTEXT://192.168.10.110:9092
advertised.listeners=PLAINTEXT://192.168.10.110:9092
#listeners提供Broker监听地址和端口,PLAINTEXT:明文协议(无加密)
#端口:这里主要是用于接收来自生产者和消费者的连接请求,和与客户端能建立连接
#zookeeper配置:定义了Kafka Broker用于连接到ZK集群的地址,2181为zk的连接端口
zookeeper.connect=192.168.10.110:2181,192.168.10.119:2181,192.168.10.120:2181
  2.5 启动 Kafka: 
cd  /opt/kafka_2.11-0.10.0.1/bin/
 
./kafka-server-start.sh -daemon  ../config/server.properties
 
#关闭
./kafka-server-stop.sh
  2.6  创建 Topic:

使用 Kafka 提供的 kafka-topics.sh 脚本创建一个 Topic。例如:

/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 6 --topic test
--topic:在消息传递系统中,主题是用于组织和发布消息的逻辑通道,类似微信聊天的窗口

--replication-factor :定义每个分区的副本数(副本可理解为实时数据备份),大于broker一半

--partitions :分区,数据被划分为多个片段,一个片段为一个分区,设置为broker的倍数6.9..

如果显示下面指令,代表创建topic成功

Created topic "test".
  2.7 删除 Topic:
#kafka删除
./kafka-topics.sh --delete --topic student --zookeeper 192.168.10.119,192.168.10.110,192.168.10.120
#zk删除
进入zk后:deleteall /brokers/topics/想要删除的主题
  2.8 验证集群状态:

使用 Kafka 提供的 kafka-topics.sh 和 kafka-consumer-groups.sh 等脚本查看 Topic 和 Consumer Group 的状态,确保集群正常运行。

#kafka列出创建主题
./kafka-topics.sh --list --zookeeper localhost:2181
#zk列出创建主题
登录到zk:./zkCli.sh -server
ls /brokers/topics   ls /brokers/ids
#查分区
./kafka-topics.sh --describe --zookeeper localhost:2181 --topic example_topic
  2.9  发送和消费消息:    使用 Kafka 提供的 kafka-console-producer.sh 和 kafka-console-consumer.sh 等脚本测试消息的发送和消费,确保消息在集群中正常流通。

#生产者:命令行要在一行可使用“\”
./kafka-console-producer.sh --broker-list 192.168.10.119:9092,192.168.10.110:9092,192.168.10.120:9092  --topic test
#消费者:
./kafka-console-consumer.sh --bootstrap-server 192.168.10.119:9092,192.168.10.110:9092,192.168.10.120:9092 --topic test --from-beginning
请注意,以上步骤和理解仅供参考,实际部署可能需要根据具体环境和需求进行调整。在生产环境中,还需要考虑安全性、性能调优等方面的配置。在部署前建议仔细阅读 kafka官网文档,并根据需要进行适当的修改和优化。
三 kafka可视化
参考优秀文档kafka可视化

这里注意要在windows上做本地解析:C:\Windows\System32\drivers\etc\hosts

四 遇到问题
其中一台zk起不来:发现是防火墙没关

标签:--,zookeeper,192.168,kafka,sh,集群,Kafka,节点
From: https://blog.csdn.net/qq_56618308/article/details/143804708

相关文章

  • KubeEdge 新版本5大特性解读:更完备的节点设备能力,全新的Dashboard体验
    本文分享自华为云社区《KubeEdge1.19.0版本发布!更完备的节点设备能力,全新的Dashboard体验》,作者:云容器大未来。 KubeEdge1.19.0版本现已正式发布。新版本在节点和设备方面引入了多个新特性,同时带来了全新版本的Dashboard。KubeEdgev1.19新增特性:支持边缘节点上报Eve......
  • 关于上报数据量大,且需要剔除一些数据时 --kafka
    假如有些数据是异常大量上报的,此时我需要屏蔽禁止这样的数据进来。能不能在消息上报到kafka时,还没消费消息之前就判断哪些是大量上报的垃圾数据,直接去除掉在使用Kafka对数据进行处理时,通常我们是在数据进入Kafka之后,在消费阶段进行过滤、转换等处理。但如果你的目标是在数据进......
  • KubeSphere 实战指南:KubeSphere 和 K8s 集群彻底卸载与重装全攻略
    KubeSphere最佳实战:KubeSphere和K8s集群卸载重装完全指南本指南为一篇实战短文,旨在帮助您快速掌握如何在现有服务器上彻底卸载KubeSphere和K8s集群并完成重装部署。实战服务器配置(架构1:1复刻小规模生产环境,只是配置略有不同)主机名IPCPU内存系统盘数据盘用......
  • KingbaseES V8R3集群运维案例之---集群恢复案例
    案例说明:KingbaseESV8R3流复制集群在专用机环境下,出现异常问题,恢复过程如下:问题现象及解决方案:1、现象一如下所示,整个集群无法启动,选择其中一个节点作为主节点,数据库服务启动如下所示:解决方案:将sys_xlog下的xxxxA.history文件改名后,重新启动数据库服务:2、现象二数据库启......
  • Kafka学习day01
    KafkaCentos7环境搭建1.安装Zookeeper1.1官网下载安装包ZooKeeper官网下载地址1.2使用Xftp或远程工具将ZooKeeper安装包上传文件到服务器或虚拟机1.3编写配置文件进入ZooKeeper安装目录cd{安装目录}/conf/1.3.1配置文件模版#使用Vim编辑vim#Thenumber......
  • C语言双相循环链表增删查改(带头节点)
    C语言双相循环链表增删查改(带头节点)最后一个节点的next指针指向第一个节点,第一个节点的prev指针指向最后一个节点定义链表节点#include<stdio.h>#include<stdlib.h>//内存管理,malloc(size_tsize)//链表节点结构体typedefstructNode{intdata;s......
  • k8s 1.28.2 集群部署 docker registry 接入 MinIO 存储
    目录dockerregistry部署生成htpasswd文件生成secret文件生成registry配置文件创建service创建statefulset创建ingress验证dockerregistrydockerregistry监控dockerregistryuidockerregistrydockerfiledockerregistry配置文件S3storagedriverregistry......
  • kafka offset 过期处理策略
    kafkaoffset过期处理策略现象:Userclassthrewexception:org.apache.spark.SparkException:Jobabortedduetostagefailure:Task2instage0.0failed4times,mostrecentfailure:Losttask2.3instage0.0(TID29,kafka2,executor2):org.apache.kafka.cl......
  • Springboot连接MySQL主从集群
    一、maven依赖com.alibabadruid-spring-boot-starter<!--Mysql驱动包--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency>二、nacos配置中心配置spr......
  • SpringBoot连接redis哨兵模式集群
    一、maven依赖org.springframework.bootspring-boot-starter-data-redisio.lettucelettuce-core二、nacos配置spring:redis:sentinel:master:mymasternodes:sentinel.IP1:6380,sentinel.IP2:24080password:123456timeout:10slettuce:pool:#连接池中的最......