python-- kafka(一): kafka 安装和查询
kafka 应用
数据读取
理论
生产者和消费者
生产者:生产数据
消费者:消费生产者产生的数据
对应关系:一个任务可以有多个分组,可以对应多个消费者,但消费者数量不能大于生产者分组数量,多余的也是无用的。
(多对多的中的一对一关系)
特性:kafka只需写入一次,可以支持任意多的应用读取全部数据,如果应用需要读取全量消息,那么请为该应用设置一个消费组,如果消费能力不强可在组内增加消费者数量。
安装
参考:https://www.cnblogs.com/lnice/p/9668750.html
除了安装版本的选择,尤其是2和3必须按照下边的提示下载,其他都按照这个来没有问题。
https://blog.csdn.net/jiangxiulilinux/article/details/96433560?depth_1-utm_source=distribute.pc_relevant.none-task
1. java jdk 安装
1.1
下载地址:https://www.oracle.com/java/technologies/javase-jdk13-downloads.html
下载选择:Java SE Development Kit 13.0.2,选择根据自己的电脑配置,本人选择为Windows x64 Installer,安装直接根据提示就可以。
1.2 添加环境变量,(此电脑-> 右击–>属性–>高级配置–>环境变量)
JAVA_HOME: C:\Program Files\Java\jdk-13.0.2 (jdk的安装路径)
Path: 在现有的值后面添加"; %JAVA_HOME%\bin"
1.3
测试是否安装成功,进入cmd,输入java -version:查看java的版本;如果提示无法识别java,检查环境变量是否配置正确
2.ZOOKEEPER 安装
2.1 下载地址
https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.5.7/
为最新版本3.5.7
注意,3.5以后下载为名称中带bin的文件,(3.5.7对应的为apache-zookeeper-3.5.7-bin.tar.gz),不带bin的无法启动,坑,实际操作中下载为没有带bin的结果,尴尬了,怎么也启动不起来。
下载后直接解压到指定的位置,将apache-zookeeper-3.5.7\conf文件夹下的zoo_sample.cfg重命名成zoo.cfg,继续编辑zoo.cfg文件,修改dataDir的值,即数据保存的路径,相对路径和绝对路径都可以,自己设置就行。
2.2 配置环境变量
ZOOKEEPER_HOME: C:apache-zookeeper-3.5.7 (zookeeper目录)
Path: 在现有的值后面添加 “;%ZOOKEEPER_HOME%\bin;”
2.3 测试,cmd进入,输入zkserver 启动运行程序,cmd的窗口不能关闭
3.kafka 安装
3.1 下载路径:http://kafka.apache.org/downloads.html
选择:选择Binary downloads下载,参照建议下载的Scala 2.12 - kafka_2.12-2.4.0.tgz版本
注意,此地也是一个坑,如果下载src版本的无法运行,切记
直接解压,无需安装,解压后在config文件中找到server.properties,打开修改 log.dirs=C:/kafka_2.12-2.4.0/kafka-logs,zookeeper直接安装在本地,所有zookeeper.connect=localhost:2181 无需修改,否则按照自己的安装修改地址和端口
3.2. 在解压路径下右键+shift 选择命令窗口运行,输入 .\bin\windows\kafka-server-start.bat .\config\server.properties
启动kafka程序,最后显示start启动成功,窗口不关闭
测试kafka的生产端和消费端
在kafka目录下,进入bin\windows下
创建主题topic,在windows路径下操
创建一个topic:
kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test:显示“Created topic test”
生产,在windows路径下操作
kafka-console-producer.bat --broker-list localhost:9092 --topic test
然后,写入生产的数据:welcome to newday!!!
消费
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning:将生产的数据显示在页面上
到此,kafaka在本地单机安装和测试已经完成,可以正常使用。
kafka 查看操作
参考: https://blog.csdn.net/qq_21383435/article/details/109788860?utm_medium=distribute.pc_relevant.none-task-blog-baidulandingword-3&spm=1001.2101.3001.4242
https://www.cnblogs.com/szy13037-5/articles/12451611.html
Kafka内部提供了许多管理脚本,这些脚本都放在$KAFKA_HOME/bin目录下,而这些类的实现都是放在源码的kafka/core/src/main/scala/kafka/tools/路径下
bin/kafka-run-class.sh kafka.tools.DumpLogSegments : 可以查看kafka的日志
bin/kafka-run-class.sh kafka.tools.DumpLogSegments --files /iteblog/data/test-4/00000000000034245135.log : 需要查看具体日志,添加–files 参数,后边紧跟日志路径,指的就是Kafka中Topic分区所在的绝对路径。分区所在的目录由config/server.properties文件中log.dirs参数决定,想要看多个日志用“,”分割,只会将Kafka中Message中Header的相关信息和偏移量都显示出来了;–print-data-log可以看日志的具体信息。
kafka,查看指定group下topic的堆积数量:
./kafka-consumer-groups.sh --bootstrap-server 10.1.16.73:9092(主机地址) --describe --group track-consumer-group(组名)
1
输出结果:
TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
topic名字 分区id 当前已消费的条数 总条数 未消费的条数 消费id 主机ip 客户端id
运行命令查看所有的topic: ./bin/kafka-topics.sh --list --zookeeper localhost:2181(地址)
创建主题: ./bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092
导出某个Consumer group各个分区的偏移量: bin/kafka-run-class.sh kafka.tools.ExportZkOffsets --group spark --zkconnect www.iteblog.com:2181(主机地址) --output-file ~/offset(输出日志的保存路径)
————————————————
版权声明:本文为CSDN博主「高高兴兴5788」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_33624802/article/details/110424579