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

  然后在生产者中输入数据,会在消费者那里接收到

 

posted @ 2018-11-07 19:50  董秀才  阅读(306)  评论(0编辑  收藏  举报