Kafka3.1安装配置,配置Kafka集群,Zookeeper集群

2023-11-11

1.下载Kafka安装包

Kafka官网下载地址:https://kafka.apache.org/downloads

2.解压压缩包

tar -zxvf kafka_2.12-3.1.0.tgz -c kafka

3.进入配置文件目录

cd kafka/config

4.配置kafka配置文件

vim server.properties

注:log.dirs文件原本的存储路径在tmp文件夹下,该文夹下数据可能会被清除。所以可以在kafka安装目录下创建一个日志文件夹,将log.dirs修改为日志文件夹全路径。
每台服务器都需要进行如下配置,但broker.id值不能相同,它是全局唯一标识,建议从0开始。
修改配置文件的如下选项:

#broker 的全局唯一编号,不能重复。若有多台服务器,每台的broker.id都应该不同,建议从0开始。在改变IP地址,不改变broker.id的话不会影响consumers
broker.id=0

#kafka 运行日志存放的路径
#这个log.dir用来存放Kafka的数据,不仅是日志
log.dirs=/home/download/kafka/logs

#配置连接 Zookeeper 集群地址
#若有多台或少于3太,可以增加或减少服务器IP:端口号,中间以,分隔
zookeeper.connect=1号服务器IP:2181,2号服务器IP:2181,3号服务器IP:2181

如果是kafka集群,应该增加如下配置,否则消费或生产时候会不成功。集群中每个服务器的server.properties文件都应该加上该配置

新增如下选项:

host.name=本服务器IP
listeners=PLAINTEXT://本服务器IP:9092
advertised.listeners=PLAINTEXT://本服务器IP:9092

请添加图片描述

5.启动Zookeeper集群

(1)配置zookeeper配置文件

每台服务器都要进行如下配置:

与kafka日志文件夹一样,在kafka安装目录下创建一个zookeeper的数据存储文件夹,其默认在tmp文件夹下会被清除,所以需要自定义一个路径。将dataDir属性修改为日志文件夹全路径

加上ticktime、initLimit、syncLimit属性,然后指定zookeeper集群中每台服务器的ip:2888:3888

2888端口用于内部选举投票,3888端口用于数据传递和广播

dataDir=/home/download/kafka/zookeeperlogs
# the port at which the clients will connect
clientPort=2181
# disable the per-ip limit on the number of connections since this is a non-production config
maxClientCnxns=0
# Disable the adminserver by default to avoid port conflicts.
# Set the port to something non-conflicting if choosing to enable this
admin.enableServer=false
# admin.serverPort=8080

tickTime=2000
initLimit=5
syncLimit=2
server.1=1号服务器IP:2888:3888
server.2=2号服务器IP:2888:3888
server.3=3号服务器IP:2888:3888

(2)在上面创建的zookeeper数据存储文件夹中创建myid文件

进入自己创建的zookeeper日志文件夹

cd /home/download/kafka/zookeeperlogs

创建myid文件

vim myid
第一台服务器输入1,第二台服务器输入2,第三台服务器输入3

在这里插入图片描述

查看myid文件确认一下
在这里插入图片描述

(3)启动zookeeper

返回kafka安装目录,执行以下命令

./bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

(4)注意事项

启动第一台时查看日志可以发现被拒绝连接。这是由于ZooKeeper集群启动的时候,每个节点都试图去连接集群中的其它节点,先启动的肯定连不上后面还没启动的,所以上面日志前面部分的异常是可以忽略的。继续将其他服务器的zookeeper启动,他们会自动选举一个leader,后续也就不会警告拒绝连接了。

[2022-04-18 19:36:47,630] WARN Cannot open channel to 3 at election address /192.168.196.189:3888 (org.apache.zookeeper.server.quorum.QuorumCnxManager)
java.net.ConnectException: 拒绝连接 (Connection refused)
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at org.apache.zookeeper.server.quorum.QuorumCnxManager.initiateConnection(QuorumCnxManager.java:383)
	at org.apache.zookeeper.server.quorum.QuorumCnxManager$QuorumConnectionReqThread.run(QuorumCnxManager.java:457)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
[2022-04-18 19:36:49,230] INFO Notification time out: 3200 (org.apache.zookeeper.server.quorum.FastLeaderElection)
[2022-04-18 19:36:49,231] WARN Cannot open channel to 3 at election address /192.168.196.189:3888 (org.apache.zookeeper.server.quorum.QuorumCnxManager)
java.net.ConnectException: 拒绝连接 (Connection refused)
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at org.apache.zookeeper.server.quorum.QuorumCnxManager.initiateConnection(QuorumCnxManager.java:383)
	at org.apache.zookeeper.server.quorum.QuorumCnxManager$QuorumConnectionReqThread.run(QuorumCnxManager.java:457)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

6.启动Kafka

(1)切换到启动目录

cd /home/admin/kafka/bin

(2)启动kafka

注:kafka启动前一定要确保zookeeper已经启动,不然会启动失败。

./kafka-server-start.sh -daemon …/config/server.properties

(3)注意事项

若你的服务武器内存太少,kafka启动时可能会报错,显示内存不足。因为其默认启动内存为1G。
修改启动文件

vim kafka-server-start.sh

在这里插入图片描述将该配置修改为 -Xmx256M -Xms256M

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

Kafka3.1安装配置,配置Kafka集群,Zookeeper集群 的相关文章

  • Kafka速度之谜:高性能的幕后秘密大揭秘

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 kafka高性能的原因 Page Cache ZeroCopy 零拷贝 前言 Kafka的介绍 kafka是linkedIn开源的分布式消息系统 归给Ap
  • 【安全】简单解析统一身份认证:介绍、原理和实现方法

    深入解析统一身份认证 介绍 原理和实现方法 导语 统一身份认证是什么 统一身份认证的原理 统一身份认证的实现 结语 导语 随着互联网的发展和各种在线服务的普及 用户在不同的应用和平台上需要进行多次身份验证 为了简化用户的登录和减少重复操作
  • 2023下半年软考「单独划线」合格标准公布

    中国计算机技术职业资格网发布了 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告 2023下半年软考单独划线地区合格标准各科目均为42分 01 官方通告 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告
  • 脚本通过 CentOS 安装 mysql-server,无需密码提示

    我的操作系统是 CentOS 6 6 我想知道如何通过 shell 脚本自动安装 mysql server 我发现有一个主题讨论了同样的问题 但在 CentOS 6 上失败了 ubuntu安装mysql无密码提示 https stackov
  • 如何解决ssh:/usr/lib64/libcrypto.so.10:没有可用的版本信息[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试执行 ssh 并收到以下消息 ssh ssh usr lib64 libcrypto so 10 no version info
  • 命令“PassengerAppRoot”无效,可能拼写错误或由服务器配置中未包含的模块定义

    我已按照中给出的每一个安装步骤进行操作在 Linux Unix 生产服务器上安装 Passenger Apache 适用于 Node js 应用程序 Red Hat 6 CentOS 6 带 RPM https www phusionpas
  • 未找到 jmap 命令

    我正在尝试使用jmap对我的命令CentOS服务器 但它一直告诉我 即使我安装了 JDK 也找不到该命令 这是命令的输出java version java version 1 7 0 25 OpenJDK Runtime Environme
  • Errr 'mongo.js:L112 错误:无法连接到位于 src/mongo/shell/mongo.js:L112 的服务器 127.0.0.1:27017'

    我无法连接到MongoDB http en wikipedia org wiki MongoDB 在 Ubuntu 中它可以工作 但我正在工作CentOS http en wikipedia org wiki CentOS现在 这是错误消息
  • 如何在 CentOs 中安装 php-xml

    我正在尝试在 CentOs 6 5 上安装 php xml 我输入命令yum install php xml 我收到此错误 Loaded plugins fastestmirror Loading mirror speeds from ca
  • 如何正确处理分块编码请求?

    我有两个网站 一个使用 PHP 的 Lighttpd 第二个使用 Apache 这两个网站都不能正确处理分块传输编码 我从我的手机 J2ME 发送此请求 并且无法将此传输类型更改为任何其他类型 所以我唯一的方法是以其他方式处理分块传输编码请
  • Docker CentOS 映像不会自动启动 httpd

    我正在尝试使用 Apache 和 PHP 程序运行一个简单的 Docker 映像 如果我跑的话效果很好 docker run t i p 80 80 my httpd bin bash 然后手动启动Apache service httpd
  • 在centos中设置Docker_Opts

    我需要设置 docker 在运行 amazon linux centos 的主机上侦听 tcp 0 0 0 0 4243 我看到的所有文档都告诉我运行以下命令 echo DOCKER OPTS H tcp 127 0 0 1 4243 gt
  • 从现有虚拟机创建 docker 镜像

    我需要使用 CentOS 和 MySQL 创建 docker 基础镜像 但我已经有这样的虚拟机 没有docker 如何从现有的虚拟机创建基础 docker 镜像并在另一台带有 docker 的机器上使用它 虽然其他评论者正确地指出 将虚拟机
  • 无法使用 git 克隆任何存储库

    我尝试克隆一些存储库 但总是遇到相同的错误 我在哪里可以找到有关此错误的更多信息 错误日志文件或类似的文件 或者也许有人知道可能出了什么问题 git clone http github com creationix nvm git nvm
  • 出现错误 /usr/bin/env: 节点:权限被拒绝

    我已经在我的服务器 Centos 上完成了 ODOO v9 安装 一切都已安装成功 登录页面也可以正常工作 但登录后我收到一个包含以下错误的页面 usr bin env node Permission Denied 我尝试更改权限 但我的问
  • Bash:更新文件中的变量

    我知道这是一个简单的答案 在找到答案之前我可能可以继续在谷歌上进行挖掘 但我的日程很紧 我希望能得到一个轻松的答复 我需要在安装时更新 ifcfg eth0 中的变量 换句话说 这就是需要发生的事情 以下变量需要更改 ONBOOT no B
  • CentOS目录结构是树形的吗?

    CentOS 上有相当于树的东西吗 如果你的 Centos 系统上没有安装 tree 无论如何我通常建议服务器设置使用最小安装磁盘 你应该在命令行中输入以下内容 yum install tree y 如果没有安装 那是因为您没有正确的存储库
  • 如何在CentOS 5.3上安装php-mongodb?

    我已经在我的 VPS 上安装了 mongoDB 效果很好 现在我想安装 php 驱动程序以使 php 与 mongoDB 一起工作 我跟着蒙戈安装 http www php net manual en mongo installation
  • httplib.BadStatusLine: '' 在 Linux 上,但在 Mac 上则不然

    这个错误已经困扰我几个小时了 我决定编写一个单独的项目 只是为了看看我是否可以复制它 而且我可以 但只能在我的服务器上复制 这适用于我的 Mac Mac OSX El Capitan 10 11 6 服务器 CentOS 7 2 1511
  • 如何使用缓存快速重建dockerfile?

    我想优化我的 Dockerfile 我希望将缓存文件保留在磁盘中 但是 当我跑步的时候我发现docker build 它总是尝试从网络获取每个文件 我希望在构建期间共享我的缓存目录 例如 var cache yum x86 64 6 但是

随机推荐

  • 组个最小数

    给定数字0 9各若干个 你可以以任意顺序排列这些数字 但必须全部使用 目标是使得最后得到的数尽可能小 注意0不能做首位 例如 给定两个0 两个1 三个5 一个8 我们得到的最小的数就是10015558 现给定数字 请编写程序输出能够组成的最
  • Postman抓包网页请求

    安装postman Interceptor谷歌插件 1 点击软件右下角Capture 2 启用代理 设置端口 3 手动点开谷歌插件 开始获取 4 获取结果可以点击进入详情页 查看接口信息
  • 深入理解计算机系统(第3版) 第十一章 网络编程

    1 客户端 服务器编程模型 采用这个模型 一个应用是由一个服务器进程和一个或者多个客户端进程组成 服务器管理某种资源 并通过操作这种资源来为它的客户端提供某种服务 客户端 服务器模型中的基本操作是事务 transacton 一个客户端 服务
  • 前端面试必备知识点总结(持续更新)

    这篇博客是对前端面试所必须掌握的知识点的总结 并且这篇博客正在持续更新中 面试复习 1 JavaScript 基础 1 执行上下文 作用域 闭包 1 什么是执行上下文 执行上下文是评估和执行JavaScript代码环境的抽象概念 每当Jav
  • 示例代码TestCpp中场景操作浅分析

    参考http blog csdn net honghaier article details 8130947 controller h cpp 示例场景管理类TestController 用于显示所有示例的菜单 testBasic h cp
  • 元宇宙+教育,正在引发哪些剧烈变革?机会在哪里?丨圆桌实录

    图片来源 由无界AI绘画工具生成 2月23日 温州元宇宙创新中心为2023年第一批申请入驻的项目企业举办了签约仪式 温州临境网络科技有限公司 温州好玩文化产业有限公司 温州云兮科技有限公司 筹 等企业完成签约 这意味着 温州当地的文创 教育
  • L2-4 哲哲打游戏PTA

    哲哲是一位硬核游戏玩家 最近一款名叫 达诺达诺 的新游戏刚刚上市 哲哲自然要快速攻略游戏 守护硬核游戏玩家的一切 为简化模型 我们不妨假设游戏有 N 个剧情点 通过游戏里不同的操作或选择可以从某个剧情点去往另外一个剧情点 此外 游戏还设置了
  • Linux网络程序设计-TCP网络编程

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 TCP IP协议是什么 二 端口 三 socket端口 1 两个重要的数据类型sockaddr和sockaddr in 2 基于TCP协议的客户端 服务器
  • GitHub 优秀的 Android 开源项目第二篇——转自多篇网络文章

    原文地址为http www trinea cn Android android open source projects view 作者Trinea 主要介绍那些不错个性化的View 包括ListView ActionBar Menu Vi
  • weex scroller滚动的小烦恼

    背景 前几天的需求开发中 需要完成这样一个功能 这还不简单 一个横向滚动的tag选择功能 一个横向scroller搞定问题 但是做为一个对自己有 要求 的程序员 怎么可能会接受一个死气沉沉的滚动条 为了勾起用户的点击欲望 我毫不犹豫的增加了
  • 微信开发提示未绑定网页开发者

    加入一下就可以了
  • input上边框有阴影(iPhone手机)

    做移动端 发现在苹果手机上input显示有问题 上边框一直有阴影 input的border初始化 box shadow也做了处理 box shadow 0 0 0 fff 在手机端都无效 如图 解决方案 input outline none
  • 利用cuda加速MATLAB程序

    利用cuda加速MATLAB程序 利用cuda加速MATLAB程序 1参考木子超的办法 2参考Tomheaven的方法 3引用 最近因为要做张量的模态积 所以要考虑使用cuda来进行并行的编程 但是c 实在太麻烦 尤其是在有MATLAB的时
  • HBase Shell常用Shell命令

    1 进入与退出hbase shell命令行窗口 root repo hbase shell hbase main 001 0 gt hbase main 001 0 gt exit root repo 2 help 1 查看hbase中有哪
  • 光标异常如何解决

    相信大家都遇到过一个小问题 那就是当编辑文章时光标会不小心变为下图所示的样子 这样就无法正常删除文字 其实想要恢复正常很简单只需点进编辑页面后 再按下insert键即可 一般电脑是Ins
  • GitHub项目:自然语言处理领域的相关干货整理

    自然语言处理 NLP 是计算机科学 人工智能 语言学关注计算机和人类 自然 语言之间的相互作用的领域 本文作者为NLP初学者整理了一份庞大的自然语言处理领域的概览 选取的参考文献与资料都侧重于最新的深度学习研究成果 这些资源能为想要深入钻研
  • sql关于avg中的else null和else 0

    drop table test1 use sys create table test1 id int not null num int not null insert into test1 values 1 10 insert into t
  • Eclipse 配置 maven

    旧版的eclipse在线安装maven太麻烦了 要安装很多依赖的东西 有时费半天劲 还按不上 不是缺这个就缺那个 而且网上推荐maven插件链接http m2eclipse sonatype org sites m2e已经失效 查看其官方网
  • Kutools for Excel v26.10 Excel插件工具箱中文版

    Kutools for Excel 是一款强大的Excel 插件增强工具箱 可以在Excel中点击几下简化各种复杂的任务 例如 Excel用户可以轻松地将工作表与多次点击相结合 合并单元格而不会丢失数据 仅粘贴到可见单元格 等等 毫无疑问
  • Kafka3.1安装配置,配置Kafka集群,Zookeeper集群

    1 下载Kafka安装包 Kafka官网下载地址 https kafka apache org downloads 2 解压压缩包 tar zxvf kafka 2 12 3 1 0 tgz c kafka 3 进入配置文件目录 cd ka