软件环境
JDK1.8
zookeeper-3.4.10
kafka_2.10-0.10.0.0
安装Java Jdk
省略...
安装Zookeeper
下载地址http://www.apache.org/dyn/closer.cgi/zookeeper/
解压到D盘后进入Conf目录 D:\zookeeper-xxx\conf
复制一份zoo_sample.cfg 并改名为 zoo.cfg,因为 Zookeeper在启动时会找这个文件作为默认配置文件
tickTime:这个时间是作为Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
dataDir:Zookeeper保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
dataLogDir:Zookeeper 保存日志文件的目录。
clientPort:客户端连接Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
clientPort默认是2181
修改zoo.cfg
把dataDir的值改成自定义的文件目录下(用/不能用\)
添加或修改如下系统变量:
ZOOKEEPER_HOME D:\zookeeper-xxx
Path 在现有的值前面添加 %ZOOKEEPER_HOME%\bin;
运行Zookeeper 打开cmd 输入 zkserver
安装Kafka
Kafka的运行依赖于Zookeeper,所以在运行Kafka之前我们需要安装并运行Zookeeper
下载安装文件: http://kafka.apache.org/downloads.html
解压到D盘 D:\kafka_xxx
打开config/server.properties
修改log.dirs的值改成自定义的目录
Kafka会按照默认,在9092端口上运行,并连接zookeeper的默认端口:2181
启动kafka
进入D:\kafka_xxx 按shift +右键,选择"在此处打开命令窗口"
.\bin\windows\kafka-server-start.bat .\config\server.properties
如果提示错误:找不到或无法加载主类 Files\Java\jdk\lib;C:\Program
解决方式如下:在kafka安装目录中找到bin\windows目录中的kafka-run-class.bat找到142行为%CLASSPATH%加上双引号
然后再执行上面命令
创建topic
进入D:\kafka_xxx\bin\windows 按shift +右键,选择"在此处打开命令窗口"
创建一个topic
kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
打开一个Producer
进入D:\kafka_xxx\bin\windows 按shift +右键,选择"在此处打开命令窗口"
kafka-console-producer.bat --broker-list localhost:9092 --topic test
打开一个Consumer
进入D:\kafka_xxx\bin\windows 按shift +右键,选择"在此处打开命令窗口"
kafka-console-consumer.bat --zookeeper localhost:2181 --topic test
然后就可以在Producer控制台窗口输入消息
在消息输入过后按回车,很快Consumer窗口就会显示出Producer发送的消息
至此,Kafka运行环境的搭建就完成了...
kafka常用命令
列出主题
kafka-topic.bat -list -zookeeper localhost:2181
描述主题
kafka-topics.bat -describe -zookeeper localhost:2181 -topic [topic name]
从头读取消息
kafka-console-consumer.bat -zookeeper localhost:2181 -topic [topic name] -from-beginning
删除主题
kafka-run-class.bat kafka.admin.TopicCommand -delete -topic [topic_to_delete] -zookeeper localhost:2181
查看topic的详细信息
./kafka-topic.sh -zookeeper localhost:2181 -describe -topic [topic name]
为topic增加副本
./kafka-reassign-partitions.sh -zookeeper localhost:2181 -reassignment-json-file json/partitions-to-move.json -execute
为topic增加partition
./bin/kafka-topics.sh -zookeeper localhost:2181 -alter -partitions 20 -topic [topic name]
下线broker
./kafka-run-class.sh kafka.admin.ShutdownBroker --zookeeper localhost:2181 broker [brokerId] --num.retries 3 --retry.interval.ms 60
shutdown broker