kafka安装与简单使用
一、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
然后在生产者中输入数据,会在消费者那里接收到