安装之前确保jkd已经安装
安装之前确保安装好zk集群,单机也可以,比如已经安装集群为 192.168.230.159:2181,192.168.230.162:2181,192.168.230.163:2181
1 在根目录创建文件夹 packages
cd /
mkdir packages
2 进入packages,下载kafka
cd /packages
wget http://mirrors.shu.edu.cn/apache/kafka/1.0.0/kafka_2.11-1.0.0.tgz
3 解压到指定目录,并重命名文件夹
tar -zxvf kafka_2.11-1.0.0.tgz -C /usr/
cd /usr
mv kafka_2.11-1.0.0 kafka
此时kafka根目录为 /usr/kafka
4 在根目录创建一个kafka的日志目录
mkdir /kafka-logs
配置kafka的配置文件
vim /usr/kafka/config/server.properties
其中比较主要的配置项 :
1)broker.id 集群中每个kafka的唯一id,要求正数,如服务器ip变了,这个参数没有变,则不会影响消费者,集群中分别是0,1,2.。。
2)log.dirs kafka数据存放地址,多个地址用逗号隔开,如 /data/logs/kafka-1,/data/logs/kafka-2
3)port kafka端口
4)message.max.bytes 消息体的最大字节数
5)num.network.threads 处理消息的最大线程数,一般不要修改
6)num.io.threads 处理磁盘io的线程数,最少要大于磁盘数
7)host.name broker主机地址,如果设置了会绑定到这个地址,不设置会绑定到所有接口上,并将其中之一发送到zk,一般不设置
8)broker.list kafka服务器集群ip列表,用逗号隔开
9)zookeeper.connect 设置zk地址,如果是集群,用逗号隔开
然后可以修改dog.dirs属性
log.dirs=/kafka-logs
设置host.name 比如机器ip为 192.168.230.185
host.name=192.168.230.185
num.partitions 属性意思是kafka主题创建时,默认包含几个分区,可以看到默认值是一个,可以不用改
log.retention.hours=168 属性表示消息保存的周期,因为消息都是以日志的形式存放的,属性默认值为168小时,也就是一周
kafka默认端口为9092 如果只安装一个,可以不用改
broker.list 属性在集群里只有一个kafka时,可以不用写也可以写上,如下
broker.list=192.168.230.185:9092
zookeeper.connect属性表示zk的地址,可以是单机或者集群,此处使用已经运行的集群,如下
zookeeper.connect=192.168.230.159:2181,192.168.230.162:2181,192.168.230.163:2181
5 配置完,保存对出就可以启动kafka,启动也是启动脚本+配置文件 如下
/usr/kafka/bin/kafka-server-start.sh /usr/kafka/config/server.properties &
后面加上&表示后台运行模式
此时可以在控制台看到正常的启动输入结果,然后点击回车,就可以退出控制台让kafka在后台运行
6 测试
创建主题
/usr/kafka/bin/kafka-topics.sh --create --topic test --partitions 2 --replication-factor 1 --zookeeper 192.168.230.159:2181,192.168.230.162:2181,192.168.230.163:2181
其中副本(replication-factor)的数量不能大于kafka的数量
在本窗口
生产者测试 :输入 /usr/kafka/bin/kafka-console-producer.sh --broker-list 192.168.230.185:9092 --topic test
然后回车 可以进入生产者发消息模式
打开一个新的远程连接窗口
消费者测试:输入 /usr/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.230.185:9092 --topic test --from-beginning
然后回车 可以进入消费消息模式
在发消息出输入hello,回车
可以在消费消息窗口,看到输出了一个 hello
删除主题
/usr/kafka/bin/kafka-topics.sh --delete --topic test --zookeeper 192.168.230.159:2181,192.168.230.162:2181,192.168.230.163:2181
注意,删除需要在配置文件中配置属性 delete.topic.enable=true,如果不配置只会标记,并没有真正删除主题
显示主题详情
/usr/kafka/bin/kafka-topics.sh --describe --topic test --zookeeper 192.168.230.159:2181,192.168.230.162:2181,192.168.230.163:2181
重新给主题分配分区
/usr/kafka/bin/kafka-topics.sh --zookeeper 192.168.230.159:2181,192.168.230.162:2181,192.168.230.163:2181 -alter --partitions 3 --topic test
kafka单机安装成功!
注意:zookeeper集群安装可以参考前面的仲裁模式教程
我们的交流基地,“JAVA互联网技术交流:789650498”欢迎小伙伴们一起来交流: