Apache kafka 卡夫卡数据日志目录下有哪些不同的日志
我试图理解卡夫卡的数据日志。我可以看到logs.dir中设置的dir下的日志为“Topicname\u partitionnumber”。但是,我想知道在它下面捕获的不同日志是什么。下面是示例日志的屏幕截图Apache kafka 卡夫卡数据日志目录下有哪些不同的日志,apache-kafka,Apache Kafka,我试图理解卡夫卡的数据日志。我可以看到logs.dir中设置的dir下的日志为“Topicname\u partitionnumber”。但是,我想知道在它下面捕获的不同日志是什么。下面是示例日志的屏幕截图 不带后缀的文件是段文件,即数据实际写入的文件,以最早包含的消息偏移量命名。其中最新的一个是活动段,即消息当前附加到的段 .index是段文件中从偏移量到位置的对应映射.timeindex是从时间戳到偏移量的映射。在Kafka日志中,每个分区都有一个log.dir目录。每个分区被分割成若干段
不带后缀的文件是段文件,即数据实际写入的文件,以最早包含的消息偏移量命名。其中最新的一个是活动段,即消息当前附加到的段
.index
是段文件中从偏移量到位置的对应映射.timeindex
是从时间戳到偏移量的映射。在Kafka日志中,每个分区都有一个log.dir目录。每个分区被分割成若干段
段只是消息的集合。卡夫卡没有将所有消息写入一个文件,而是将它们分割成若干段
每当Kafka写入分区时,它都会写入活动段。每个段都有定义的大小限制。当达到管段大小限制时,它将关闭管段并打开一个新的管段,该管段将变为活动状态。根据配置,一个分区可以有一个或多个段
每个段包含三个文件-segment.log、segment.index和segment.timeindex
每个Kafka主题分区有三种类型的文件:
-rw-r--r-- 1 kafka hadoop 10485760 Dec 3 23:57 00000000000000000000.index
-rw-r--r-- 1 kafka hadoop 148814230 Oct 11 06:50 00000000000000000000.log
-rw-r--r-- 1 kafka hadoop 10485756 Dec 3 23:57 00000000000000000000.timeindex
日志和索引文件前面的00000000000000
是段的名称。它表示写入该段的第一条记录的偏移量。如果有两段,即第1段包含消息偏移量0,1,第2段包含消息偏移量2和3
-rw-r--r-- 1 kafka hadoop 10485760 Dec 3 23:57 00000000000000000000.index
-rw-r--r-- 1 kafka hadoop 148814230 Oct 11 06:50 00000000000000000000.log
-rw-r--r-- 1 kafka hadoop 10485756 Dec 3 23:57 00000000000000000000.timeindex
-rw-r--r-- 1 kafka hadoop 10485760 Dec 3 23:57 00000000000000000002.index
-rw-r--r-- 1 kafka hadoop 148814230 Oct 11 06:50 00000000000000000002.log
-rw-r--r-- 1 kafka hadoop 10485756 Dec 3 23:57 00000000000000000002.timeindex
.log
文件存储偏移量、消息的物理位置、时间戳以及消息内容。在读取来自卡夫卡的特定偏移量的消息时,在一个巨大的日志文件中查找偏移量将成为一项昂贵的任务。
这就是文件变得有用的地方。它将消息的偏移量和物理位置存储在日志文件中
.timeindex
该文件基于消息的时间戳
下面是示例日志的屏幕截图
您应该添加您的屏幕截图
和示例日志
,然后我们可以给出您期望的具体答案
在此之前,我们只能给你一些常识: 例如:在我的CentOS中,对于文件夹:
/root/logs/kafka/kafka.log/storybook\u add-0
:是主题的名称storybook\u add
- 在代码中,真正的主题名是
storybook add
- 在代码中,真正的主题名是
[root@xxx storybook_add-0]# ll
total 8
-rw-r--r-- 1 root root 10485760 Aug 28 16:44 00000000000000000023.index
-rw-r--r-- 1 root root 700 Aug 28 16:45 00000000000000000023.log
-rw-r--r-- 1 root root 10485756 Aug 28 16:44 00000000000000000023.timeindex
-rw-r--r-- 1 root root 9 Aug 28 16:44 leader-epoch-checkpoint
:日志文件00000000000023.log
- 存储真实数据=卡夫卡消息
:索引文件00000000000023.索引
:timeindex文件00000000000023.timeindex
调用的段名称00000000000023
- 为什么
?23
- 在
中,存储第一条消息的位置是2300000000000023.log
- 卡夫卡此前共收到
消息23条
- 卡夫卡此前共收到
- 在
- 为什么
- 消息数据是什么样子的
- 我们可以看穿它的内容:
- 我们可以看穿它的内容:
关于卡夫卡的进一步基本概念和逻辑,建议阅读本文:
感谢信的可能副本。这说明了这一点。此外,我在.log文件中没有看到消息时间戳。我们是否需要对配置文件进行任何更改才能将其记录下来?我们需要及时知道分区中的消息。Kafka 0.10+版本的消息中包含时间戳。您使用的是哪个卡夫卡版本?0.10.2.x是卡夫卡版本。这是一个.log(数据)文件中的示例。我能看到几个额外的字符/符号,但看不到日期。我试着用记事本和记事本++打开它。