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】暂时不知道有什么用

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • C++面试题之虚函数(表)实现机制

    C++面试题之虚函数(表)实现机制前言大家都应该知道C++的精髓是虚函数吧?虚函数带来的好处就是:可以定义一个基类的指针,其指向一个继承类,当通过基类的指针去调用函数时,可以在运行时决定该调用基类的函数还是继承类的函数.虚函数是实现多态(动态绑定)/接口函数的基础.可以说:没有虚函数,C++将变得一无是处!既然是C++的精髓,那么我们有必要了解一下她的实现方式吗?有必要!既然C++是从C语言的基础上发展而来…

  • 光场相机可以计算光线的方向,也可以计算目标的深度_相机感光器在哪里

    光场相机可以计算光线的方向,也可以计算目标的深度_相机感光器在哪里博主最近在搞光场相机方面的研究啦,好了废话不多说,开始!1.一些前言废话首先,来一下光场的基本概念,来自百度百科。光场(lightfield):就是指光在每一个方向通过每一个点的光量。从概念里

  • C++能做什么[通俗易懂]

    C++能做什么[通俗易懂]C++Applications2011年6月18日更新这里有一个有关系统、应用程序和库的列表,列表中的全部或者大部分代码用C++编写,当然,该列表并不全面。即使我如何努力,我也不能列举一个含有1000个主要由C++编写的程序列表,但是这里的列表可能包含我听说过程序之中的第1000个。这是一个包括系统、应用程序和库的列表,读者可能熟悉其中的一些,新手可能有个概念C++能做什么,或者我仅仅

  • maven项目 porm.xml中Dependency Scope属性「建议收藏」

    maven项目 porm.xml中Dependency Scope属性「建议收藏」DependencyScope在POM4中,<dependency>中还引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值:*compile,缺省值,适用于所有阶段,会随着项目一起发布。*provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。*runtime,…

  • 为什么国产操作系统要基于linux,解说国产Linux操作系统为什么都模仿Windows桌面…

    为什么国产操作系统要基于linux,解说国产Linux操作系统为什么都模仿Windows桌面…目前大多数国产Linux操作系统的桌面都和微软的Windows桌面非常类似,相信很多人都有这个疑问,为什么多数国产Linux操作系统都在模仿Windows桌面?而不是独有的界面风格呢?下面来看两张国产Linux操作系统桌面截图:1.中标麒麟桌面操作系统2.红旗Linux桌面操作系统注:从上面两张桌面截图可以看出,和微软的Windows桌面相当的像,特别是和WindowsXP相当像。以下从四点说明…

  • 前端使用Vue框架解决跨域问题「建议收藏」

    前端使用Vue框架解决跨域问题「建议收藏」现在项目开发,都实现前后端分离开发,导致前端向后端发送请求,会出现跨域错误;如何解决这个问题?方法一:后端可以下载cors包,对指定的前端域名允许请求;具体操作可以自行百度;今天主要介绍的是前端人员不用去麻烦后端人员,就可以通过前端设置实现跨域请求;方法二:前端设置服务器代理;本人用的是脚手架vue…

发表回复

您的电子邮箱地址不会被公开。

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