Kafka集群安装「建议收藏」

Kafka集群安装「建议收藏」概览1.上传解压2.修改配置文件3.分发到其他节点下4.启动5.测试6.注意准备安装好ZookeeperJDK版本:1.8.0_141Kafka版本:kafka_2.12-1.1.0工具:Xshell5,Xftp51.上传解压首先在master(随意一台)的主机上的/usr下创建kafka文件夹作为安装路径[root@master~]#cd/usr/[roo…

大家好,又见面了,我是你们的朋友全栈君。

概览

1.上传解压
2.修改配置文件
3.分发到其他节点下
4.启动
5.测试
6.注意

准备

安装好Zookeeper
JDK版本:1.8.0_141
Kafka版本:kafka_2.12-1.1.0
工具:Xshell 5,Xftp 5

1.上传解压

首先在master(随意一台)的主机上的/usr下创建kafka文件夹作为安装路径

[root@master ~]# cd /usr/
[root@master usr]# ls
bin  etc  flume  games  hadoop  hbase  hive  include  java  lib  lib64  libexec  local  sbin  share  sqoop  src  tmp  zookeeper
[root@master usr]# mkdir kafka

然后利用Xftp将压缩包上传到/usr/kafka下并解压

[root@master usr]# cd kafka/

在这里插入图片描述

[root@master kafka]# ls
kafka_2.12-1.1.0.tgz
[root@master kafka]# tar -zxf kafka_2.12-1.1.0.tgz 

2.修改配置文件

修改 /usr/kafka/kafka_2.12-1.1.0/config/server.properties

[root@master kafka]# cd kafka_2.12-1.1.0/config/
[root@master config]# vim server.properties 

只修改broker.id和zookeeper就行

在这里插入图片描述
修改为
在这里插入图片描述
broker.id每台主机上都不一样

在这里插入图片描述
修改为
在这里插入图片描述
保存退出

这是比较详细的配置(其实只要按照上面的更改即可)

#broker的全局唯一编号,不能重复
broker.id=01
 
#用来监听链接的端口,producer或consumer将在此端口建立连接
port=9092
 
#处理网络请求的线程数量
num.network.threads=3
 
#用来处理磁盘IO的线程数量
num.io.threads=8
 
#发送套接字的缓冲区大小
socket.send.buffer.bytes=102400
 
#接受套接字的缓冲区大小
socket.receive.buffer.bytes=102400
 
#请求套接字的缓冲区大小
socket.request.max.bytes=104857600
 
#kafka消息存放的路径
log.dirs=/home/servers-kafka/logs/kafka
 
#topic在当前broker上的分片个数
num.partitions=2
 
#用来恢复和清理data下数据的线程数量
num.recovery.threads.per.data.dir=1
 
#segment文件保留的最长时间,超时将被删除
log.retention.hours=168
 
#滚动生成新的segment文件的最大时间
log.roll.hours=168
 
#日志文件中每个segment的大小,默认为1G
log.segment.bytes=1073741824
 
#周期性检查文件大小的时间
log.retention.check.interval.ms=300000
 
#日志清理是否打开
log.cleaner.enable=true
 
#broker需要使用zookeeper保存meta数据
zookeeper.connect=master:2181,slave1:2181,slave2:2181
 
#zookeeper链接超时时间
zookeeper.connection.timeout.ms=6000
 
#partion buffer中,消息的条数达到阈值,将触发flush到磁盘
log.flush.interval.messages=10000
 
#消息buffer的时间,达到阈值,将触发flush到磁盘
log.flush.interval.ms=3000
 
#删除topic需要server.properties中设置delete.topic.enable=true否则只是标记删除
delete.topic.enable=true
 
#此处的host.name为本机IP(重要),如果不改,则客户端会抛出:Producerconnection to localhost:9092 unsuccessful 错误!
host.name=master

3.分发到其他节点下

[root@master config]# scp -r /usr/kafka/ root@slave1:/usr/

[root@master config]# scp -r /usr/kafka/ root@slave2:/usr/

然后分别在slave1和slave2上更改broker id

vim /usr/kafka/kafka_2.12-1.1.0/config/server.properties 

将broker id改为02和03

4.启动

确保防火墙关闭

首先全部启动Zookeeper,参考Zookeeper安装中的启动

再全部启动kafka

# 由于没配置环境变量,所以需要进入安装目录下启动
cd /usr/kafka/kafka_2.12-1.1.0
# 后台启动,最后加&
./bin/kafka-server-start.sh -daemon config/server.properties &

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

5.测试

在master上创建topic-test

[root@master kafka_2.12-1.1.0]# ./bin/kafka-topics.sh --create --zookeeper master:2181,slave1:2181,slave2:2181 --replication-factor 3 --partitions 3 --topic test
Created topic "test".

在master,slave1,2上查看已创建的topic列表

./bin/kafka-topics.sh --list --zookeeper localhost:2181

在这里插入图片描述
在master上启动生产者

[root@master kafka_2.12-1.1.0]# ./bin/kafka-console-producer.sh --broker-list master:9092,slave1:9092,slave2:9092 --topic test

随意输入一些内容
在这里插入图片描述

在其他节点上启动控制台消费者

./bin/kafka-console-consumer.sh --bootstrap-server master:9092,slave1:9092,slave2:9092 --from-beginning --topic test

会出现
在这里插入图片描述

--from-beginning如果去掉不会出现消费者启动之前的消息

测试:在生产者输入内容,消费者查看消息

删除主题:

./bin/kafka-topics.sh --delete  --zookeeper localhost:2181  --topic test

6.注意

如果kafaka启动时加载的配置文件中server.properties没有配置delete.topic.enable=true,那么此时的删除并不是真正的删除,而是把topic标记为:marked for deletion

你可以通过命令:./bin/kafka-topics –zookeeper 【zookeeper server】 –list
来查看所有topic

此时你若想真正删除它,可以如下操作:
(1)登录zookeeper客户端:命令:./bin/zookeeper-client
(2)找到topic所在的目录:ls /brokers/topics
(3)找到要删除的topic,执行命令:rmr /brokers/topics/【topic name】即可,此时topic被彻底删除。

另外被标记为marked for deletion的topic你可以在zookeeper客户端中通过命令获得:ls /admin/delete_topics/【topic name】,
如果你删除了此处的topic,那么marked for deletion 标记消失
zookeeper 的config中也有有关topic的信息: ls /config/topics/【topic name】暂时不知道有什么用

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129932.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月25日 下午8:20
下一篇 2022年4月25日 下午8:40


相关推荐

  • 回调函数的理解

    回调函数的理解回调函数的理解

    2022年4月24日
    36
  • 台式机通过网线共享笔记本电脑无线网络

    台式机通过网线共享笔记本电脑无线网络台式机通过网线共享笔记本电脑无线网络的步骤 1 保证笔记本通过 无线网络连接 可以正常上网 2 将台式机通过网线和笔记本连接 3 将笔记本的 本地连接 和 无线网络连接 的 ipv4 均设置为自动获取 4 打开笔记本的 无线网络连接 属性 共享 勾选 允许其他网络用户共享 如下图 5 允许共享点击 确定 后 笔记本的 本地连接 的 IP 会自动变更为如下状态

    2026年3月18日
    2
  • [Pulsar系列] 10分钟学会Pulsar消息系统概念

    [Pulsar系列] 10分钟学会Pulsar消息系统概念ApachePulsar 是一个支持多租户的 高性能的服务与服务之间消息通讯的解决方案 最初由雅虎开发 现在由 Apache 软件基金会管理 Pulsar 在 Yahoo 的生产环境运行了三年多 助力 Yahoo 的主要应用 如 YahooMail YahooFinance YahooSports Flickr Gemini 广告平台和 Yahoo 分布式键值存储系统 Sherpa Kafka 不够好 智联招聘基于 Pulsar 打造企业级事件中心 Pulsar 的主要特性如下 Pulsar 实例原生支持多集群

    2026年3月18日
    2
  • solidworks 32位计算机,SolidWorks2016

    solidworks 32位计算机,SolidWorks2016很多从事机械设计行业的用户都听过 SolidWorks 的大名 本次小编为大家带来 SolidWorks20 最新版 新版优化了使用者界面 支持真实螺纹功能 可以帮助用户快速设计出 3D 机械图 软件功能 SolidWorks20 的集成式 3D 设计环境覆盖产品开发的各个方面 应用户请求提供的新强化功能包括 任意曲面平展功能 设计性能可视化和验证功能 与制造部门更高效的沟通协同能力 迅速制作市场营销高质量图

    2026年3月19日
    2
  • k8s pod配置_为什么要用k8s

    k8s pod配置_为什么要用k8sk8sPod的结构Pod定义Pod的配置镜像拉取策略启动命令环境变量(不推荐)端口设置资源配额Pod的介绍Pod的结构每个Pod中都包含一个或者多个容器,这些容器可以分为两类:用户程序所在的容器,数量可多可少。Pause容器,这是每个Pod都会有的一个根容器,它的作用有两个:可以以它为依据,评估整个Pod的健康状况。可以在根容器上设置IP地址,其它容器都共享此IP(Pod的IP),以实现Pod内部的网络通信(这里是Pod内部的通讯,Pod之间的通讯采用虚拟二层网络技术来实现,我们当前环境使

    2022年8月9日
    9
  • CTK 插件框架介绍

    CTK 插件框架介绍CTKPluginFramework:IntroductionTheCTKPluginFrameworkcanshortlybedescribedasadynamiccomponentsystemforC++.CTK插件框架可以简要的描

    2022年6月1日
    142

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号