Kafka日志数据深度解析:从基础查看到高级操作全攻略
#作者:孙德新
文章目录
- 查看log日志文件(kafka-dump-log.sh)
- 1、查看Log文件基本数据信息
- 2、index文件健康性检查(--index-sanity-check)
- 3、转储文件(--max-message-size)
- 4、偏移量解码(--offsets-decoder)
- 5、日志数据解析(--transaction-log-decoder)
- 6、查询Log文件具体数据(--print-data-log)
- 7、查看index文件具体内容
- 8、查看timeindex文件具体内容
- 9、验证日志文件
- 10、使用kafka-run-class.sh查看log、index、timeindex数据
查看log日志文件(kafka-dump-log.sh)
kafka转储日志工具可用于调试集群元数据目录的日志段和快照。该工具将扫描提供的文件并解码元数据记录。
参数:
–deep-iteration
–files <String: file1, file2, …> 必需; 读取的日志文件 ,例如 --files 0000009000.log
–index-sanity-check sanity中文健全性。用于检查日志索引文件的健康状况,确保它们的元数据是有效的,并且能正确地指向消息的物理位置。
–key-decoder-class 指定一个自定义的解码器类来解码消息键,用于反序列化键。这类应实现kafka.serializer。解码器特性。自定义jar应该是在kafka/libs目录中提供。
–max-message-size 用于指定最大消息大小,超过这个大小的消息会被视为无效消息并被忽略。默认:5242880 。
–offsets-decoder 用于指定消息的偏移量解码器,通常用于在控制台打印出消息的偏移量。日志数据解析为来自__consumer_offsets主题的偏移量数据。
–print-data-log 打印真正业务数据内容
–transaction-log-decoder 日志数据解析为来自__transaction_state主题的事务元数据
–value-decoder-class [String] 用于指定一个自定义的值解码器类,当你需要以特定格式(如压缩或加密)读取Kafka中的消息值时,可能需要提供一个自定义的解码器。用于反序列化消息。这个类应该实现kafka。序列化程序。解码器特性。自定义jar应该在kafka/libs目录中可用。(默认值:kafka.serializer.StringDecoder)
–verify-index-only 验证日志文件的索引的一个脚本。这个参数的使用意味着你只想验证日志文件的索引,而不是转储或者打印出日志文件的内容。这通常用于确保日志文件的索引是有效的,也可以用来检查日志文件是否损坏。只需验证索引日志,而不打印其内容。
–version 查询kafka版本
1、查看Log文件基本数据信息
kafka-dump-log.sh
–files <String: file1, file2, …>:要转储的数据和索引日志文件列表,用逗号分隔。(必须)
–print-data-log:如果设置,转储数据日志时打印消息内容。如果指定了任何解码器选项,则自动设置。
#在Kafka 2.0.0之前使用
128 ~]# kafka-run-class.sh kafka.tools.DumpLogSegments --files
~]# ./kafka-run-class.sh kafka.tools.DumpLogSegments --files /tmp/kafka/log/topic-log-3/00000000000000000000.log --print-data-log#从Kafka 2.0.0开始使用
~]# ./kafka-dump-log.sh --files /tmp/kafka/log/topic-log-0/00000000000000000000.log
~]# ./kafka-dump-log.sh --files /tmp/kafka/log/topic-log-0/00000000000000000000.log --print-data-log
具体案例如下:
~]# ./kafka-dump-log.sh --files /tmp/kafka-logs/testTopic-0/00000000000000000000.log
baseOffset: 1044628 lastOffset: 1044676 count: 49 baseSequence: -1 lastSequence: -1 producerId: -1 producerEpoch: -1 partitionLeaderEpoch: 0 isTransactional: false isControl: false position: 27083143 CreateTime: 1691300649226 size: 1139 magic: 2 compresscodec: none crc: 2048338167 isvalid: truebaseOffset: 1044677 lastOffset: 1044773 count: 97 baseSequence: -1 lastSequence: -1 producerId: -1 producerEpoch: -1 partitionLeaderEpoch: 0 isTransactional: false isControl: false position: 27084282 CreateTime: 1691300649228 size: 2228 magic: 2 compresscodec: none crc: 1293136921 isvalid: true
上面每条消息都表示的是batchRecord
baseOffset为起始位置,lastOffset为终止位置,count为本次消息数量。
2、index文件健康性检查(–index-sanity-check)
本参数可以查看、检查log、index、timeindex文件。其中log只能查看数据。
~]# ./kafka-dump-log.sh --index-sanity-check --files /data1/kafka/zglt-0/00000000000000000000.index
Dumping /data1/kafka/zglt-0/00000000000000000000.index
/data1/kafka/zglt-0/00000000000000000000.index passed sanity check.
~]# ./kafka-dump-log.sh --index-sanity-check --files /data1/kafka/zglt-0/00000000000000000000.log
Dumping /data1/kafka/zglt-0/00000000000000000000.log
Starting offset: 0
~]# ./kafka-dump-log.sh --index-sanity-check --files /data1/kafka/zglt-0/00000000000000000000.timeindex
Dumping /data1/kafka/zglt-0/00000000000000000000.timeindex
/data1/kafka/zglt-0/00000000000000000000.timeindex passed sanity check.
3、转储文件(–max-message-size)
转储大小限制为1MB的日志文件 /var/log/kafka/log-0:
kafka-dump-log.sh --max-message-size 1048576 --files /var/log/kafka/log-0
4、偏移量解码(–offsets-decoder)
偏移量验证:当怀疑消费者的偏移量不正确时,可以通过 --offsets-decoder 来验证实际存储在日志中的偏移量是否与预期一致。
~]# ./kafka-dump-log.sh --offsets-decoder decoder --files /data1/kafka/aaa-0/00000000000000000013.log
Dumping /data1/kafka/aaa-0/00000000000000000013.log
Starting offset: 13
5、日志数据解析(–transaction-log-decoder)
解析log、index等文件
~]# ./kafka-dump-log.sh --transaction-log-decoder --files /data1/kafka/aaa-0/00000000000000000013.log
Dumping /data1/kafka/aaa-0/00000000000000000013.log
Starting offset: 13
6、查询Log文件具体数据(–print-data-log)
]# ./kafka-dump-log.sh --files /data1/aaa-1/00000000000000000001.snapshot --print-data-log
Dumping /data1/kafka/aaa-1/00000000000000000001.snapshotkafka-dump-log.sh --files /tmp/kafka-logs/testTopic-0/00000000000000000000.log --print-data-log
下面为每条消息的具体信息:
| offset: 399407 CreateTime: 1691292274339 keySize: 4 valueSize: 14 sequence: -1 headerKeys: [] key: 0 payload: Message_399408
| offset: 399408 CreateTime: 1691292274339 keySize: 4 valueSize: 14 sequence: -1 headerKeys: [] key: 1 payload: Message_399409
| offset: 399409 CreateTime: 1691292274339 keySize: 4 valueSize: 14 sequence: -1 headerKeys: [] key: 2 payload: Message_399410
| offset: 399410 CreateTime: 1691292274339 keySize: 4 valueSize: 14 sequence: -1 headerKeys: [] key: 3 payload: Message_399411
| offset: 399411 CreateTime: 1691292274339 keySize: 4 valueSize: 14 sequence: -1 headerKeys: [] key: 4 payload: Message_399412
| offset: 399412 CreateTime: 1691292274339 keySize: 4 valueSize: 14 sequence: -1 headerKeys: [] key: 5 payload: Message_399413
| offset: 399413 CreateTime: 1691292274339 keySize: 4 valueSize: 14 sequence: -1 headerKeys: [] key: 6 payload: Message_399414
| offset: 399414 CreateTime: 1691292274339 keySize: 4 valueSize: 14 sequence: -1 headerKeys: [] key: 7 payload: Message_399415
| offset: 399415 CreateTime: 1691292274339 keySize: 4 valueSize: 14 sequence: -1 headerKeys: [] key: 8 payload: Message_399416
| offset: 399416 CreateTime: 1691292274339 keySize: 4 valueSize: 14 sequence: -1 headerKeys: [] key: 9 payload: Message_399417
案例二:一条批消息(Record Batch)日志记录,包含多条的实际数据
offset表示该分区的记录偏移量,指的是第几条记录
baseOffset:基准偏移量(每条消息的开始),即批消息中第一条记录的偏移量。用来表示当前Segment中第一条消息的offset
lastOffset为批消息中最后一条记录的偏移量。每个LogSegment都有一个基准偏移量baseOffset,用来表示当前LogSegment中第一条消息的offset。偏移量是一个64位的长整型数。
Count:为批消息中包含的记录数,lastOffset - baseOffset + 1 = count
其他字段有些没有用到,所以显示-1,有些暂时也不清楚
position表该记录在当前片段文件的文件偏移量。即批消息的起始位置(应是物理地址),每个log文件中position都从0开始
CreateTime记录创建的时间,在批消息中为批消息中最后一条记录的创建时间,在记录中为记录的创建时间
size为批消息的大小,从内容可以看出,前一条批消息的position,加上前一条消息的size,结果为后一条消息的position
isValid记录是否有效
keysize表示key的长度,如果为-1,则表示没有设置key,即key=null
valuesize表示一条记录value的长度。实际消息体的长度。如果为-1,则表示消息为空。
magic表示本次发布kafka服务程序协议的版本号。即消息格式的版本号,对v2版本而言,magic等于2,是固定值。
compresscodec压缩工具
sequence消息的序列号
payload表示具体的消息
每个LogSegment都有一个基准偏移量baseOffset,用来表示当前LogSegment中第一条消息的offset。偏移量是一个64位的长整型数。
日志文件和两个索引文件都是根据基准偏移量(baseOffst)命名的,名称固定为20位数字,没有达到的位数则用0填充。
比如第1个LogSegment的日志文件名是00000000000000000000.log,因此它的基准偏移量是0。
比如第2个LogSegment的日志文件名是00000000000000000133.log,因此它的基准偏移量是133,也说明了该LogSegment中的第一条消息的偏移量为133,同时可以反映出第一个LogSegment中共有133条消息(偏移量从0至132的消息)。
]# /usr/local/kafka_2.13-2.7.1/bin/kafka-dump-log.sh --files /data1/kafka/aaa-0/00000000000000000000.log --print-data-log
Dumping /data1/kafka/aaa-0/00000000000000000000.log
Starting offset: 0
baseOffset: 0 lastOffset: 0 count: 1 baseSequence: -1 lastSequence: -1 producerId: -1 producerEpoch: -1 partitionLeaderEpoch: 2 isTransactional: false isControl: false position: 0 CreateTime: 1718268803238 size: 200 magic: 2 compresscodec: NONE crc: 710512664 isvalid: true
| offset: 0 CreateTime: 1718268803238 keysize: -1 valuesize: 130 sequence: -1 headerKeys: [] payload: ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ]# /usr/local/kafka_2.13-2.7.1/bin/kafka-dump-log.sh --files /data1/kafka/aaa-2/00000000000000000002.log --print-data-log
Dumping /data1/kafka/aaa-2/00000000000000000002.log
Starting offset: 2
baseOffset: 2 lastOffset: 2 count: 1 baseSequence: -1 lastSequence: -1 producerId: -1 producerEpoch: -1 partitionLeaderEpoch: 2 isTransactional: false isControl: false position: 0 CreateTime: 1718268782347 size: 68 magic: 2 compresscodec: NONE crc: 3743762133 isvalid: true
| offset: 2 CreateTime: 1718268782347 keysize: -1 valuesize: 0 sequence: -1 headerKeys: [] payload:
baseOffset: 3 lastOffset: 3 count: 1 baseSequence: -1 lastSequence: -1 producerId: -1 producerEpoch: -1 partitionLeaderEpoch: 2 isTransactional: false isControl: false position: 68 CreateTime: 1718290399570 size: 71 magic: 2 compresscodec: NONE crc: 2993399773 isvalid: true
| offset: 3 CreateTime: 1718290399570 keysize: -1 valuesize: 3 sequence: -1 headerKeys: [] payload: ljj
baseOffset: 4 lastOffset: 4 count: 1 baseSequence: -1 lastSequence: -1 producerId: -1 producerEpoch: -1 partitionLeaderEpoch: 2 isTransactional: false isControl: false position: 139 CreateTime: 1718290411208 size: 71 magic: 2 compresscodec: NONE crc: 1297150689 isvalid: true
| offset: 4 CreateTime: 1718290411208 keysize: -1 valuesize: 3 sequence: -1 headerKeys: [] payload: syy
baseOffset: 5 lastOffset: 5 count: 1 baseSequence: -1 lastSequence: -1 producerId: -1 producerEpoch: -1 partitionLeaderEpoch: 2 isTransactional: false isControl: false position: 210 CreateTime: 1718290425119 size: 71 magic: 2 compresscodec: NONE crc: 3308277039 isvalid: true
| offset: 5 CreateTime: 1718290425119 keysize: -1 valuesize: 3 sequence: -1 headerKeys: [] payload: 520
7、查看index文件具体内容
./bin/kafka-dump-log.sh --files /tmp/kafka-logs/testTopic-0/00000000000000000000.index
offset为索引值,position为具体位置,可以看到大概每隔600条消息,就建立一个索引。配置项为log.index.size.max.bytes,来控制创建索引的大小;
offset: 972865 position: 25163202
offset: 973495 position: 25179579
offset: 974125 position: 25195956
offset: 974755 position: 25212333
offset: 975385 position: 25228710
offset: 976015 position: 25245087
offset: 976645 position: 25261464
offset: 977275 position: 25277841
8、查看timeindex文件具体内容
./bin/kafka-dump-log.sh --files /tmp/kafka-logs/testTopic-0/00000000000000000000.timeindex
输出如下:
timestamp: 1691292274425 offset: 475709
timestamp: 1691292274426 offset: 476947
timestamp: 1691292274427 offset: 478255
timestamp: 1691292274428 offset: 479543
timestamp: 1691292274429 offset: 480848
timestamp: 1691292274430 offset: 481767
timestamp: 1691292274431 offset: 483209
timestamp: 1691292274432 offset: 484869
timestamp: 1691292274433 offset: 486408
9、验证日志文件
[root@kafka18 ~]# ./kafka-dump-log.sh --verify-index-only --files /data1/kafka/aaa-0/00000000000000000013.log
Dumping /data1/kafka/aaa-0/00000000000000000013.log
Starting offset: 13[root@kafka18 ~]# ./bin/kafka-dump-log.sh --verify-index-only --files /data1/kafka/aaa-0/00000000000000000013.index
Dumping /data1/kafka/aaa-0/00000000000000000013.index
10、使用kafka-run-class.sh查看log、index、timeindex数据
方式一:
bin]# ./kafka-run-class.sh kafka.tools.DumpLogSegments --files /data1/kafka/liantong-0/00000000000000000003.log
Dumping /data1/kafka/liantong-0/00000000000000000003.log
Starting offset: 3
baseOffset: 3 lastOffset: 3 count: 1 baseSequence: -1 lastSequence: -1 producerId: -1 producerEpoch: -1 partitionLeaderEpoch: 0 isTransactional: false isControl: false position: 0 CreateTime: 1722694779291 size: 175 magic: 2 compresscodec: NONE crc: 1931408561 isvalid: true
方式二:查看log具体数据内容
hhhh为具体真实kafka数据
]#./kafka-run-class.sh kafka.tools.DumpLogSegments --files /data1/kafka/liantong-0/00000000000000000003.log --deep-iteration --print-data-log
Dumping /data1/kafka/liantong-0/00000000000000000003.log
Starting offset: 3
baseOffset: 3 lastOffset: 3 count: 1 baseSequence: -1 lastSequence: -1 producerId: -1 producerEpoch: -1 partitionLeaderEpoch: 0 isTransactional: false isControl: false position: 0 CreateTime: 1722694779291 size: 175 magic: 2 compresscodec: NONE crc: 1931408561 isvalid: true
| offset: 3 CreateTime: 1722694779291 keysize: -1 valuesize: 105 sequence: -1 headerKeys: [] payload: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh查看timeindex
./kafka-run-class.sh kafka.tools.DumpLogSegments --files /data1/kafka/liantong-0/00000000000000000003.timeindex --deep-iteration --print-data-log
Dumping /data1/kafka/liantong-0/00000000000000000003.timeindex
timestamp: 1722694779291 offset: 3查看index
./kafka-run-class.sh kafka.tools.DumpLogSegments --files /data1/kafka/liantong-0/00000000000000000003.index --deep-iteration --print-data-log
Dumping /data1/kafka/liantong-0/00000000000000000003.index
相关文章:
Kafka日志数据深度解析:从基础查看到高级操作全攻略
#作者:孙德新 文章目录 查看log日志文件(kafka-dump-log.sh)1、查看Log文件基本数据信息2、index文件健康性检查(--index-sanity-check)3、转储文件(--max-message-size)4、偏移量解码(--offsets-decoder)5、日志数据解析(--transaction-log-decoder)6、查询Log文件…...
docker容器部署jar应用导入文件时候报缺少字体错误解决
如题,在导入文件时候报错如下: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11FontManager 经查是缺少对应字体,解决办法有两张: 第一种:…...
npm安装时无法访问github域名的解决方法
个人博客地址:npm安装时无法访问github域名的解决方法 | 一张假钞的真实世界 今天在用npm install的时候出现了github项目访问不了的异常: npm ERR! Error while executing: npm ERR! /bin/git ls-remote -h -t https://github.com/nhn/raphael.git np…...
APP端弱网模拟与网络测试:如何确保应用在各种网络环境下稳定运行
随着智能手机的普及,APP的网络性能成为用户体验的关键因素之一。尤其是在弱网环境下,应用的表现可能严重影响用户的满意度。因此,APP端的网络测试,尤其是弱网模拟,成为了提升产品质量和用户体验的重要环节。 当前APP网…...
从 ClickHouse 到 Apache Doris:在网易云音乐日增万亿日志数据场景下的落地
导读:日志数据已成为企业洞察系统状态、监控网络安全及分析业务动态的宝贵资源。网易云音乐引入 Apache Doris 作为日志库新方案,替换了 ClickHouse。解决了 ClickHouse 运维复杂、不支持倒排索引的问题。目前已经稳定运行 3 个季度,规模达到…...
wordpress模板文件结构超详解
wordpress网站建设中,主题的制作是最为核心的环节。了解模板文件结构是模板制作的第一步,本文所讲的模板文件结构包括两部分,一是指以文件名为概念的文件结构,二是指文件内容的代码结构。 一、如何使模板文件起作用 ↑ wordpres…...
BFS 走迷宫
#include<bits/stdc.h> using namespace std; int a[100][100],v[100][100];//访问数组 n,m<100 struct point {int x;int y;int step; }; queue<point> r;//申请队列 int dx[4]{0,1,0,-1};//四个方向 右下左上 int dy[4]{1,0,-1,0}; int main() { /* 5 4 1 …...
尚硅谷爬虫note005
一、编解码 1.get请求的quote方法 将汉字转为Unicode字符 # _*_ coding : utf-8 _*_ # Time : 2025/2/12 16:33 # Author : 20250206-里奥 # File : demo19_get请求的quote方法 # Project : PythonProject10-14# 景甜page # https://www.baidu.com/s?ieutf-8&f8&rsv…...
mysql中general_log日志详解
介绍 1.记录范围:这个log里面会记录MySQL所有的SQL语句,不管是查询语句,还是DML语句,还是DDL语句,还是DCL语句,这些语句统统都会被记录在general log文件中。就连我们连接和断开MySQL数据库的这些语句。 2…...
计算机毕业设计SpringBoot+Vue.js医院住院管理系统(源码+lw文档+PPT+讲解视频)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
MongoDB 7 分片副本集升级方案详解(下)
#作者:任少近 文章目录 1.4 分片升级1.5 升级shard11.6 升级shard2,shard31.7 升级mongos1.8重新启用负载均衡器1.9 推荐MongoDB Compass来验证数据 2 注意事项: 1.4 分片升级 使用“滚动”升级从 MongoDB 7.0 升级到 8.0,即在其他成员可用…...
AI技术未来趋势
AI技术未来趋势 目录 AI技术未来趋势第一,AGI(通用人工智能)发展步伐在放慢;第二,ChatGPT等问答式AI已接近极限,复杂推理的“慢思考”模式成为新方向;第三,除了少数科技巨头,大多数公司都专注于做专业大模型第四,模型越做越小,进入轻量化时代第五,高质量数据、合成数据使模型知…...
vue 文件下载(导出)excel的方法
目前有一个到处功能的需求,这是我用过DeepSeek生成的导出(下载)excel的一个方法。 1.excel的文件名是后端生成的,放在了响应头那里。 2.这里也可以自己制定文件名。 3.axios用的是原生的axios,不要用处理过的ÿ…...
Flask和Django相比哪个更适合新手?
Flask 与 Django:哪个更适合新手? 对于新手来说,选择 Flask 还是 Django 主要取决于你的具体需求和项目复杂度。以下是两者的详细对比,帮助你做出选择: 1. Flask 优点 简单易用:Flask 是一个轻量级的微框架,代码简洁,易于理解和上手。适合初学者快速入门。灵活性高:…...
【含开题报告+文档+PPT+源码】基于spring boot的固定资产管理系统
开题报告 本研究论文提出了一种基于SpringBoot框架构建的全面且高效的固定资产管理系统,旨在优化企业内部的固定资产全生命周期管理流程。该系统集成了员工权限管理、业务流程处理及数据分析于一体,实现了员工便捷的登录注册功能,并通过安全…...
Unity嵌入到Winform
Unity嵌入到Winform Winform工程🌈...
Svelte 最新中文文档翻译(8)—— @html、@const、@debug 模板语法
前言 Svelte,一个非常“有趣”、用起来“很爽”的前端框架。从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1: Svelte 以其独特的编…...
Qt Designer菜鸟使用教程(实现一个本地英文翻译软件)
1 安装Qt Designer 安装这个包的时候会自带安装 Qt Designer, 安装目录为python的安装根目录的 Lib/site-packages/qt5_applications/Qt/bin 目录下。 pip install pyqt5-tools2 新建窗体 2.1 新建主窗体 创建之后如下图: 设置主窗口大小: 设置窗…...
CPT205 计算机图形学 OpenGL 3D实践(CW2)
文章目录 1. 介绍2. 设计3. 准备阶段4. 角色构建5. 场景构建6. 交互部分6.1 键盘交互6.2 鼠标交互6.3 鼠标点击出多级菜单进行交互 7. 缺点与问题7.1 程序bug7.2 游戏乐趣不足7.3 画面不够好看 8. 完整代码 1. 介绍 前面已经分享过了关于CPT205的CW1的2D作业,这次C…...
【网络安全 | 漏洞挖掘】跨子域账户合并导致的账户劫持与删除
未经许可,不得转载。 文章目录 概述正文漏洞成因概述 在对目标系统进行安全测试时,发现其运行着两个独立的域名——一个用于司机用户,一个用于开发者/企业用户。表面上看,这两个域名各自独立管理账户,但测试表明它们在处理电子邮件变更时存在严重的逻辑漏洞。该漏洞允许攻…...
利用蓝耘智算平台深度搭建deepseek R1模型,进行深度机器学习
大佬请阅读 前言关于DeepSeek 的显著优点卓越的性能表现低廉的训练成本广泛的应用场景开放的开源策略 DeepSeek 与其他 AI 对比什么是蓝耘智算平台为什么使用蓝耘智算平台搭建我们的deepseek如何使用蓝耘 GPU 智算云平台搭建我们的R1模型并成功进行调用测试11. AVL树节点结构2.…...
传输层协议TCP (上)
文章目录 前言TCP报文格式TCP连接管理连接建立与中止三次握手三次握手的状态变化为什么是三次握手 四次挥手四次挥手的状态变化FIN_WAIT_2 状态可能导致连接长时间不释放的问题TIME_WAIT状态作用 复位报文段非法连接请求其他异常情况 半打开连接同时握手同时关闭 参考资料 前言…...
深度学习框架探秘|Keras:深度学习的魔法钥匙
一、引言:深度学习浪潮中的 Keras 前面的文章我们探秘了深度学习框架中的两大明星框架 —— TensorFlow 和 PyTorch 以及 两大框架的对比 在深度学习的众多框架中,还有一款框架备受开发者们的喜爱 —— Keras 。它就像是一位贴心的助手,为我…...
使用爬虫获取1688商品分类:实战案例指南
在电商领域,获取商品分类信息对于市场分析、选品决策和竞争情报收集至关重要。1688作为国内领先的B2B电商平台,提供了丰富的商品分类数据。通过爬虫技术,我们可以高效地获取这些分类信息,为商业决策提供有力支持。 一、为什么选择…...
MySQL常见错误码及解决方法(1130、1461、2003、1040、2000、1049、1062、1129、2002、1690等)
目录 【问题1】、FATAL: error 1130: Unknown error 1130 【问题2】、FATAL: error: 1461 【问题3】、ERROR 2003 (HY000): Cant connect to MySQL server on "" (113) 【问题4】、FATAL: error 2003: Cant connect to MySQL server on 172.19.111.151 (111) 【问…...
【k8s应用管理】kubernetes lngress资源管理
文章目录 补充**Service 的作用****Kubernetes 外部访问方案** Kubernetes IngressIngress 概述Kubernetes 外部访问方案对比Ingress 的组成**Ingress-Nginx 工作原理**Ingress 控制器的部署方式1. DaemonSet Host 网络模式2. Deployment NodePort/LoadBalancer Service 创建…...
2.11学习
misc buu-荷兰宽带泄露 下载附件得到了一个后缀为.bin的文件 是宽带数据文件,用RouterPassView工具进行查看。大多数现代路由器都可以让您备份一个文件路由器的配置文件,然后在需要的时候从文件中恢复配置。路由器的备份文件通常包含了像您的ISP的用户…...
Python 调用 DeepSeek API 案例详细教程
本案例为以 Python 为例的调用 DeepSeek API 的小白入门级详细教程 步骤 先注册并登录 DeepSeek 官网:https://www.deepseek.com/ 手机号验证码注册或登录即可 创建 API KEY 注意保存,写代码时必须提供的 打开 Pycharm 创建工程 并安装 OpenAI 库编写代…...
C++ Primer 函数基础
欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…...
qt QPlainTextEdit总结
QPlainTextEdit 概述 用途:专为处理纯文本设计,适合大文本编辑和简单文本显示(如日志、代码编辑器)。 特点:相比QTextEdit,轻量高效,支持快速加载和滚动大文件,默认不支持富文本。 …...
