操作系统:Windows 10
jdk版本:jdk1.8.0_181
kafka版本:kafka_2.11-2.0.0.tgz
需要导入注册表,使之能够右击鼠标 在当前位置打开cmd命令窗口。
注册表文件:OpenCmdHere.reg直接运行即可
PS:我原本用jdk1.8.0_065的时候,kafka能够启动起来,但进行生产者生产消息,消费者消费就会报错。搞了好久换了上面的jdk
1.8才好。版本问题很头疼
如果要兼容jdk1.7,请使用kafka 0.9版本
1、下载及解压
至官方网站下载kafka编译后的二进制包:http://kafka.apache.org/downloads,此处以2.0.0版本为例,下载kafka_2.11-2.0.0.tgz
将下载压缩包保存至任意文件夹中,并解压压缩包
2、配置
kafka自带的zookeeper配置位于:config/zookeeper.properties,默认无需修改,配置中clientPort=2181指定了zookeeper运行的端口,如需修改请自行调整
kafka的配置位于:config/server.properties,默认无需修改,配置中zookeeper.connect=localhost:2181指定了zookeeper服务地址,如需修改请自行调整
3、启动
直接运行上面的注册表后,进入kafka目录,右击鼠标在当前位置打开cmd命令窗口接着执行以下名称。
启动自带的zookeeper(打开新cmd窗口):
bin\windows\zookeeper-server-start.bat config\zookeeper.properties
启动kafka(打开新cmd窗口):
bin\windows\kafka-server-start.bat config\server.properties
创建主题(打开新cmd窗口):
bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
查看主题::
bin\windows\kafka-topics.bat --list --zookeeper localhost:2181
启动producter(打开新cmd窗口):
bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic test
启动consumer(打开新cmd窗口):
0.9之后版本:
bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning
0.9版本
bin\windows\kafka-console-consumer.bat --zookeeper localhost:2181 --topic test
在生产者窗口中输入内容回车后,消费者窗口中会立即出现对应的内容
4.启动kafka时报错解决办法:
| 报错信息 | 解决办法 |
| 'wmic' 不是内部或外部命令,也不是可运行的程序或批处理文件。 | 修改kafka-server-start.bat文件第28行,在wmic前加上C:\windows\system32\wbem\ |
| ERROR Failed to clean up log for __consumer_offsets-31 in dir C:\tmp\kafka-logs due to IOException (kafka.server.LogDirFailureChannel) java.nio.file.FileSystemException: C:\tmp\kafka-logs\__consumer_offsets-31\00000000000000000000.log.cleaned -> C:\tmp\kafka-logs\__consumer_offsets-31\00000 000000000000000.log.swap: 另一个程序正在使用此文件,进程无法访问。 | 删除C:\tmp\kafka-logs文件夹后重新启动 |
5.其他配置
kafka默认配置文件中已启用了消息日志清理策略,默认策略为7天(168小时)或1G(1073741824),无论哪个条件达到都触发清理:
log.retention.hours=168
log.segment.bytes=1073741824
linux下修改kafka运行日志:
kafka运行日志(此日志非上段内容中的日志,上段内容中的日志指的是消息队列数据,可以在server.properties中通过log.dir=配置,如启用了清理策略则体积不会太大)保存在安装目录下的logs,由于kafka会产生大量日志,建议修改日志保存路径,修改bin/kafka-run-class.sh,在对应代码段添加LOG_DIR=xxx,如:
# Log directory to use
LOG_DIR=/data/kafka/logs
if [ "x$LOG_DIR" = "x" ]; then
LOG_DIR="$base_dir/logs"
fi
1813

被折叠的 条评论
为什么被折叠?



