一、kafka安装
安装是非常简单的,现在推荐安装0.8的版本,这个版本是非常稳定的,而且公司里面也多用此版本。
简单的安装:
这个是我使用的版本,kafka_2.11-0.8.2.2.tgz
直接tar -zxvf kafka_2.11-0.8.2.2.tgz -C /soft/apps/kafka
ok
解压后进入,安装的目录。
找到config目录
修改里面的server.properties文件
文件的详细属性为:
#broker的全局唯一编号,不能重复
broker.id=1
#用来监听链接的端口,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=/export/servers/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=192.168.52.106:2181,192.168.52.107:2181,192.168.52.108: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(重要),如果不改,则客户端会抛出:Producer connection to localhost:9092 unsuccessful 错误!
host.name=spark101
ok,根据上面的配置修改自己的配置i文件,切记broker.id属性,全局唯一
然后分发文件,分发后修改broker.id和host.name属性
二、简单的使用
注意:kafka的使用,需要zookeeper的支持,请切记在启动kafka之前,zookeeper集群已启动完毕。
首先,启动kafka,启动成功后会jps查看会有一个kafka进程,若是启动失败,请仔细检查配置文件。
./bin/kafka-server-start.sh -daemon config/server.properties
创建topic
./bin/kafka-topics.sh --create --zookeeper spark101:2181,spark102:2181,spark103:2181 --partition 3 --replication-factor 3 --topic test01
查看topic
./bin/kafka-topics.sh --list --zookeeper spark101:2181,spark102:2181,spark103:2181
查看详情
./bin/kafka-topics.sh --describe --zookeeper spark101:2181,spark102:2181,spark103:2181 --topic test01
delete.topic.enable属性为true会直接删除,若是没有配置默认只是标记,并未真正删除)
./bin/kafka-topics.sh --delete --zookeeper spark101:2181,spark102:2181,spark103:2181 --topic test01
说明:若是没有true,同时又想删除干净的话,逐步删除一下文件
1、删除配置真实数据目录下的数据文件
2、然后删除zookeeper下面的信息
rmr /admin/delete_topics/topicname
rmr /config/topics/topicname
rmr /brokers/topics/topicname
三、API的使用,消费者和生产者之间的简单通信
生产者:(spark101节点)
./bin/kafka-console-producer.sh --broker-list spark101:9092,spark102:9092,spark103:9092 --topic test03
消费者:
.bin/kafka-console-consumer.sh --zookeeper spark101:2181,spark102:2181,spark103:2181 --topic test03 --from-beginning
然后在生产者中输入数据,会在消费者那里接收到