kafka集群搭建

【生产者篇】 send方法中更新元数据源码分析 在send方法中需要获取Cluster信息,然后计算分区的时候,如果消息没有指定分区,那么就会使用到Cluster信息用于计算分区号。所以在计算分区号之前,需要获取最新的Cluster数据 但是更新元数据的具体不在这里,准确的应该叫等待元数据更新。为什么是等待呢?看源码 send方法源码: //....省略无关代码 //等待元数据更新:[2.1] clusterAndWaitTime = wa... 阅读详情

kafka集群搭建
第一步部署三个节点zk

3.1. 下载Zookeeper
下载地址:http://mirror.bit.edu.cn/apache/zookeeper/
解压文件:

#tar -zxvf zookeeper-3.4.11.tar.gz

3.2. 配置相关文件
1) 配置conf/zoo.cfg
将zk安装目录下conf/zoo_sample.cfg修改为zoo.cfg
#cp zoo_sample.cfg zoo.cfg
文件内容如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/mnt/hadoop/zookeeper-3.4.12/data
clientPort=2181

server.1=192.168.3.172:2888:3888
server.2=192.168.3.173:2888:3888
server.3=192.168.3.174:2888:3888
 initLimit
ZooKeeper集群模式下包含多个zk进程,其中一个进程为leader,余下的进程为follower。
当follower最初与leader建立连接时,它们之间会传输相当多的数据,尤其是follower的数据落后leader很多。initLimit配置follower与leader之间建立连接后进行同步的最长时间。
 syncLimit
配置follower和leader之间发送消息,请求和应答的最大时间长度。
 tickTime
tickTime则是上述两个超时配置的基本单位,例如对于initLimit,其配置值为5,说明其超时时间为 2000ms * 5 = 10秒。
server.id=host:port1:port2
其中id为一个数字,表示zk进程的id,这个id也是dataDir目录下myid文件的内容。
host是该zk进程所在的IP地址,port1表示follower和leader交换消息所使用的端口,port2表示选举leader所使用的端口。
 dataDir
其配置的含义跟单机模式下的含义类似,不同的是集群模式下还有一个myid文件。myid文件的内容只有一行,且内容只能为1 - 255之间的数字,这个数字亦即上面介绍server.id中的id,表示zk进程的id。
2) 设置myid
在节点配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,$ZOOKEEPER_HOME/conf/zoo.cfg文件中配置的server.X,则myid文件中就输入这个数字X。(即在每个节点上新建并设置文件myid,其内容与zoo.cfg中的id相对应)这里master节点为 1
#mkdir /mnt/hadoop/zookeeper-3.4.12/data
#cd /mnt/hadoop/zookeeper-3.4.12/data
#touch myid
#echo “1” > myid

3) 设置日志
修改conf/log4j.properties

Define some default values that can be overridden by system properties
zookeeper.root.logger=INFO, CONSOLE

改为

Define some default values that can be overridden by system properties
zookeeper.root.logger=INFO, ROLLINGFILE

将

log4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender

改为—每天一个log日志文件,而不是在同一个log文件中递增日志log4j.appender.ROLLINGFILE=org.apache.log4j.DailyRollingFileAppender

修改bin/zkEvn.sh

54 if [ "x${ZOO_LOG_DIR}" = "x" ]
     55 then
     56     ZOO_LOG_DIR="."
     57 fi
     58 
     59 if [ "x${ZOO_LOG4J_PROP}" = "x" ]
     60 then
     61     ZOO_LOG4J_PROP="INFO,CONSOLE"
     62 fi
改为
if [ "x${ZOO_LOG_DIR}" = "x" ]
then
    ZOO_LOG_DIR="$ZOOBINDIR/../logs"
Fi

if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
    ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
fi

3.3. 从master节点分发文件到其他节点
1) ZK软件从主节点复制到其它节点
把在hdn1上配置好的zk软件,通过远程复制命令

 scp -r /mnt/hadoop/zookeeper-3.4.12  hadoop@hdn2:/mnt/hadoop/
#scp -r /mnt/hadoop/zookeeper-3.4.12  hadoop@hdn3:/mnt/hadoop/

复制到hdn2、hdn3对应的位置 并修改myid.
 在hdn2节点的/mnt/hadoop/zookeeper-3.4.12/data目录下
#vi /mnt/hadoop/zookeeper-3.4.12/data/myid
修改为 2
 在hdn3节点的/mnt/hadoop/zookeeper-3.4.12/data目录下
#vi /mnt/hadoop/zookeeper-3.4.12/data/myid
修改为 3
3.4. 启动ZK
在每个节点上$ZOOKEEPER_HOME目录下,运行 (这里的启动顺序为 hdn1> hdn2 > hdn2 )
/mnt/hadoop/zookeeper-3.4.12/bin/zkServer.sh start
都运行后,再用命令在各节点查看启动状态
/mnt/hadoop/zookeeper-3.4.12/bin/zkServer.sh status
如果启动失败,可以到zk安装目录logs目录下查看日志。
3.5. 关闭ZK
#/mnt/hadoop/zookeeper-3.4.12/bin/zkServer.sh stop

登录zk
/mnt/hadoop_runtimes/zookeeper-3.4.12/bin/zkCli.sh

=============================================================
第二步部署三个节点kafka

修改配置文件 server.properties
1.broker.id=2 #每个节点的值不一样,必须为正整数
2.log.dirs=/mnt/kafka/kafka_2.11-2.1.0/logs

3.#设置zookeeper的连接端口
zookeeper.connect=192.168.3.227:2181,192.168.3.228:2181,192.168.3.229:2181

出现问题解决方案:

  1. Error while fetching metadata with correlation id : {LEADER_NOT_AVAILABLE}
    表示无法识别kafka hostname

kafka配置文件:
listeners=PLAINTEXT://192.168.3.228:9092
advertised.listeners=PLAINTEXT://192.168.3.228:9092

每个节点分别启动:

nohup /mnt/kafka_2.11-2.1.0/bin/kafka-server-start.sh  /mnt/kafka_2.11-2.1.0/config/server.properties  &

/mnt/kafka_2.11-2.1.0/bin/kafka-server-start.sh -daemon config/server.properties

jps查看kafka进程
在这里插入图片描述

=============================================================

测试kafka

  1. 创建 wfdebugo01,这个topic分区数为3,复制为1(不复制)。该topic跨越全部broker。下面管理命令在任意kafka节点上执行即可

/mnt/kafka_2.11-2.1.0/bin/kafka-topics.sh --create --zookeeper node3,node4,node5 --replication-factor 1 --partitions 3 --topic wfdebugo01
在这里插入图片描述

  1. 创建 wfdebugo02,这个topic分区数为1,复制为3(每个主机都有一份)。该topic跨越全部broker。下面管理命令在任意kafka节点上执行即可
    /mnt/kafka_2.11-2.1.0/bin/kafka-topics.sh --create --zookeeper node3,node4,node5 --replication-factor 3 --partitions 1 --topic wfdebugo02
    在这里插入图片描述
  2. 列出topic信息
    /mnt/kafka_2.11-2.1.0/bin/kafka-topics.sh --list --zookeeper localhost:2181
    在这里插入图片描述
  3. 列出topic描述信息
    /mnt/kafka_2.11-2.1.0/bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic wfdebugo01
    在这里插入图片描述
  4. 消息的产生和消费

/mnt/kafka_2.11-2.1.0/bin/kafka-console-producer.sh --broker-list node3:9092 --topic wfdebugo01

在这里插入图片描述

/mnt/kafka_2.11-2.1.0/bin/kafka-console-consumer.sh --bootstrap-server node3:9092 --topic wfdebugo01 --from-beginning

在这里插入图片描述

Kafka【第一篇】Kafka集群搭建 What is Kafka:它是一个分布式消息系统,由linkedin使用scala编写,用作LinkedIn的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础。具有高水平扩展和高吞吐量。 阅读详情

相关推荐

Zookeeper集群搭建和Kafka集群的搭建

Zookeeper!!! 一、Zookeeper集群搭建步骤 0)集群规划 在hadoop01、hadoop02和hadoop03三个节点上部署Zookeeper。 1)解压安装 (1)解压zookeeper安装包到/home/hadoop/insatll/目录下 [hadoop@hadoop01 tools]$ tar -zxvf zookeeper-3.4.10.tar.gz -C /home...

weixin_43646034的博客 1237

Error while fetching metadata with correlation id : {LEADER_NOT_AVAILABLE} 正确处理姿势

kafka出现:Error while fetching metadata with correlation id : {LEADER_NOT_AVAILABLE}表示无法识别kafka hostname正确处理姿势1、修改server.properties如下,目的是让kafka监听的到vi /opt/kafka/kafka/config/server.properties2 ps...

AI 13万+

Kafka 集群搭建

Kafka 集群搭建

qq_31515997的博客 2755

Error while fetching metadata with correlation id : {LEADER_NOT_AVAILABLE}解决

kafka报错报错信息处理步骤 报错信息 在终端执行kafka发送、消费消息遇到如下错误 Error while fetching metadata with correlation id 2 : {abc123=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient 处理步骤 1 2 ps -ef | grep kafka ...

csdn_xpw的博客 2万+

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

因项目需要,需搭建kafka集群进行验证工作。系统环境真的很重要,这会影响排查问题的效率。但是大部分博客编写的时候基本上都没有记录这些,这就会导致有些命令不是共通的。#1 系统版本#2 jdk版本至此,kafka集群搭建完毕,大家如果有什么疑问,请及时和我沟通交流。

xgysimida的博客 4319

kafka集群环境搭建

kafka集群测试环境搭建全记录。

链上研发 4419

Kafka集群搭建

介绍了kafka集群的搭建

凉茶铺的博客 5088

【Kafka】报错:Error while fetching metadata with correlation id 1 : {topic_lcc=LEADER_NOT_AVAILABLE}

1.美图 2.背景 CDH环境下报错,看我们的应用程度读取kafka信息报错。 错误信息如下 Error while fetching metadata with correlation id 1 : {topic_lcc=LEADER_NOT_AVAILABLE} 对方配置如下 集群启动后如下 3. 解决方法1 3.1 原因 获取相关ID为xx的元数据时出错 3.2 问题解决 修改...

九师兄 8770

基于zookeeper搭建kafka集群

Kafka 是一款开源的分布式流处理平台,最初由 LinkedIn 开发,后由 Apache 基金会维护。它被设计用于高吞吐、可扩展的实时数据管道和流处理场景。Kafka 的核心功能包括发布和订阅消息流、持久化存储数据以及实时处理数据流。其架构基于生产者(Producer)、消费者(Consumer)、主题(Topic)和分区(Partition)等概念,支持水平扩展和高容错性。Kafka 广泛应用于日志收集、消息系统、实时分析和事件溯源等场景,是现代大数据生态系统中不可或缺的组件之一。

muxia_jhy的博客 1757

【Kafka】 WARN Error while fetching metadata with correlation id xx : {UNKNOWN_TOPIC_OR_PARTITION}

这里明显可以看出来{这里是你写入的topic名称=UNKNOWN_TOPIC_OR_PARTITION} ,而本次报错topic名称是空,应该是用kafka API 写入的时候,传入的topic名称为空,而且,诶呦设置。当kafka 写入的时候topic名称后面一个空格的话,你又不知道,那么也会这样,比如已有一个topic名称。20230926 今日再现了这个问题,是这样的我的一个环境kafka正常,怎么看都正常但是就是无法生产。查看内置消费组topic和我的要发送的topic都是正常的。

九师兄 1万+

非标准包 game.rgss3a 的打开方法 | 2023 年实测

生活笔记

陌雨’的博客 1万+

快速入门Kafka系列(2)——Kafka集群搭建

        作为快速入门Kafka系列的第二篇博客,本篇为大家带来的是Kafka集群搭建~         码字不易,先赞后看! 文章目录Kafka 集群环境搭建1、初始化环境准备2、下载安装包并上传解压3、node01服务器修改ka...

大数据梦想家 6423

【论文阅读|小目标分割算法ASF-YOLO】

论文题目:ASF-YOLO: A novel YOLO model with attentional scale sequence fusion for cell instance segmentation 论文链接: https://arxiv.org/abs/2312.06458 代码链接:https://github.com/mkang315/ASF-YOLO 摘要(Abstract) 作者提出了一种新颖的基于 "You Only Look Once"(YOLO)的注意力尺度序列融合框架(ASF-YO

dally2的博客 8118

zk集群+kafka集群搭建

三台linux服务器分别是 11.10.135.198 、11.10.135.202 、11.10.135.207:zookeeper 运行 需要依赖 jdk, kafka 运行需要依赖zokeeper, 所以需要先安装jdk, 然后安装zookeeper, 然后才能安装kafka。

code_lfh的博客 2402

对称加密中GCM和CBC俩种加密模式的区别

**CBC(Cipher Block Chaining)** 和 **GCM(Galois/Counter Mode)** 是两种常见的对称加密模式。它们的主要区别体现在加密方式、性能和安全性上。

闲人 1112

E-Prime脑电实验打mark全攻略:从端口查询到串并口实战(附常见问题解决)

本文提供了E-Prime脑电实验打mark的完整实战指南,涵盖端口查询、并口与串口配置的核心步骤及常见问题解决。文章深入解析了mark原理,并详细介绍了通过E-Basic脚本和Serial设备对象发送信号的两种方法,帮助研究者实现E-Prime与脑电设备的高精度时间同步,确保实验数据可靠性。

4k5l6j7h8的博客 356

搭建kafka集群

准备三台服务器, 安装jdk1.8 ,其中每一台虚拟机的hosts文件中都需要配置如下的内容 192.168.72.141 node01 192.168.72.142 node02 192.168.72.143 node03 安装目录 安装包存放的目录:/export/software 安装程序存放的目录:/export/servers 数据目录:/export/data 日志目录:/e...

独孤一剑 2234

GD32单片机引脚复用指南:如何让JTAG接口的PA15/PB3发挥第二功能?

本文详细介绍了GD32F103Cx系列单片机如何通过AFIO模块进行引脚复用,特别是将默认用于JTAG调试接口的PA15、PB3等引脚释放为普通IO或复用功能引脚。文章从原理出发,结合代码实践,讲解了如何配置调试端口重映射,将JTAG引脚安全地转换为GPIO或定时器通道,并提供了常见问题排查与最佳实践,帮助开发者高效利用有限的引脚资源。

nept的博客 810

Kafka——两种集群搭建详解

Kafka是一个能够支持高并发以及流式消息处理的消息中间件,并且Kafka天生就是支持集群的,今天就主要来介绍一下如何搭建Kafka集群。Kafka目前支持使用Zookeeper模式搭建集群以及KRaft模式(即无Zookeeper)模式这两种模式搭建集群,这两种模式各有各的好处,今天就来分别介绍一下这两种方式这个配置项用于指定Kafka服务器监听客户端连接的地址和端口,当 Kafka 服务器启动时,它将监听listeners配置项中指定的地址和端口,等待客户端的连接请求。一般情况下这个配置以或者。

吴声子夜歌的博客 1万+

Basilisk库教程

要在仿真中执行模块,其调度由Basilisk的[Process]和[Task]容器控制。BSK[Task]包含一系列模块,这些模块都以相同的更新频率执行。一个[Process]本质上是一个任务组,可以包含多个相关的任务。例如,在多星仿真中,你可以为每颗卫星创建一个[Process],以便将相关任务和嵌入式模块有序地组织起来。下图展示了一个示例布局,其中bskSat卫星的动力学被添加到与飞行软件(FSW)算法分开的进程中,这些算法在该卫星上执行。在每个进程中,设置了若干任务,这些任务以指定的频率进行评估。

weixin_57997461的博客 1139

C# USB通信实现

在C#中,我们可以利用.NET框架提供的类库和API来实现与USB设备的通信。本文将介绍如何使用C#进行USB通信,并提供相应的代码示例。以上就是使用C#进行USB通信的基本过程。通过以上代码示例,你可以实现与USB设备的简单通信,具体的实现方式和细节根据你的实际需求进行调整和扩展。命名空间,该命名空间包含了与串口通信相关的类和方法。选择需要通信的USB设备,然后使用。步骤二:获取可用的USB设备列表。首先,在你的C#项目中引入。步骤三:打开USB端口。步骤六:关闭USB端口。步骤一:引入命名空间。

PixelProX的博客 4386

Kafka-为什么要用集群?基于ZK搭建Kafka集群

Kafka为什么要用集群?因为单机服务的Kafka有很大的局限性,不稳定可能会崩溃,数据容易丢失。本文还手把手教你如何基于ZK搭建Kafka集群。

1576

MySQL 一一 MySQL基本使用

1、数据库 简单来说,所谓的数据库就是存储数据的容器,而且是永久存储的。 2、为什么需要数据库 3、为什么要学习MySQL数据库 最早MySQL数据,瑞典AB公司开发的一款开源型的关系型数据库。 随着时间的推移,瑞典AB公司把MySQL数据库转让给Sun公司(Java语言的创始公司) 后来,Sun公司经营不善,又把MySQL数据库转让给甲骨文公司(Oracle数据库) 4、数

Guizy 7万+

【集群搭建专题】——Kafka集群搭建

1

weixin_44275259的博客 2940

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: Elasticsearch 运维
下一篇: Kafka的使用和错误解决
wflovejava
博客等级 码龄11年 23粉丝 46原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值