首先下载kafka
点击kafka官网进行下载对应的版本
点击左下角download后,选择自己要下载的版本,本文以kafka 0.11版本为例
kafka安装
前提是已经搭建好了zookeeper集群,如未搭建zookeeper集群,请点击zookeeper集群搭建
kafka安装只需要将下载下来的文件解压到自己想装的位置就行了
配置文件的配置
进入解压后的config目录中
然后就是对server.properties进行编辑,找到以下核心部分根据自己的需求进行编辑
下边是对这个配置文件的一些参数的总结,自己根据需求进行配置
#broker的全局唯一编号,不能重复
broker.id=0
#删除topic功能使能
delete.topic.enable=true
#处理网络请求的线程数量
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=/opt/module/kafka/logs
#topic在当前broker上的分区个数
num.partitions=1
#用来恢复和清理data下数据的线程数量
num.recovery.threads.per.data.dir=1
#segment文件保留的最长时间,超时将被删除
log.retention.hours=168
#配置连接Zookeeper集群地址
zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181
配置环境变量
这样可以在任何地方执行kafka命令
编辑profile配置文件
[root@hadoop102 module]# vi /etc/profile
#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin
对配置文件进行更新
[root@hadoop102 module]# source /etc/profile
对其它服务器进行同样的安装
安装步骤和上边一样,只不过需要改一下节点(安装目录下的config目录中的server.properties文件中的broker.id),使broker.id都不相同
这样,kafka集群就搭建好了
kafka集群的启动
进入kafka的目录中
每个服务器的kafka输入以下命令进行服务启动
bin/kafka-server-start.sh config/server.properties &
注意后边要加上自己要用的那个配置文件,后边加的&表示后台进程,否则启动后会留在前台进程
如果不加&,则需要输入下边红色方框中的来转到后台进程
到此kafka的集群就已经搭建完毕
kafka命令大合集
kafka启动停止命令
这里的zookeeper命令是启动kafka自带的zookeeper,这里只是介绍,一般不会使用kafka自带的zookeeper
启动zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties &
启动kafka
bin/kafka-server-start.sh config/server.properties &
停止kafka
bin/kafka-server-stop.sh
停止zookeeper
bin/zookeeper-server-stop.sh
如果停止不下来,可以使用kill -9 pid的方式强制杀掉。
kafka的topic相关命令
创建topic
kafka-topics.sh --zookeeper server01:2181 --create --topic test --replication-factor 1 --partitions 3
–create:指定创建topic动作
–topic:指定新建topic的名称
–zookeeper: 指定kafka连接zk的连接url,该值和server.properties文件中的配置项{zookeeper.connect}一样
–partitions:指定当前创建的kafka分区数量,默认为1个
–replication-factor:指定每个分区的复制因子个数,默认1个
删除topic,默认情况下Kafka的Topic是没法直接删除的,需要进行相关参数配置。删除是标记删除,没有实际删除这个Topic;如果运行删除Topic,
两种方式:
方式一:通过delete命令删除后,手动将本地磁盘以及zk上的相关topic的信息删除即可
方式二:配置server.properties文件,给定参数delete.topic.enable=true,重启kafka服务,此时执行delete命令表示允许进行Topic的删除
kafka-topics.sh --zookeeper server01:2181 --delete --topic test
修改topic的分区,注意:分区数量只能增加,不能减少
kafka-topics.sh --zookeeper server01:2181 --alter --topic test --partitions 5
查看所有topic
kafka-topics.sh --zookeeper server01:2181 --list
查看所有topic的详细信息
kafka-topics.sh --zookeeper server01:2181 --describe
查看指定topic的详细信息
kafka-topics.sh --zookeeper server01:2181 --describe --topic test
生产者shell命令
kafka-console-producer.sh --broker-list server01:9092–topic test
消费者shell命令
kafka-console-consumer.sh --zookeeper server01:2181 --from-beginning --topic test