我正在尝试了解kafka数据日志。我可以看到在logs.dir中设置的目录下的日志为Topicname_partitionnumber。但是我想知道在它之下捕获的不同日志是什么。以下是示例日志的屏幕截图。
答案 0 :(得分:0)
不带后缀的文件是段文件,即实际写入数据的文件,以最早包含的消息偏移量命名。最新的是活动段,即当前已将邮件附加到的段。
.index
是段文件中从偏移量到位置的对应映射。 .timeindex
是从时间戳到偏移量的映射。
答案 1 :(得分:0)
在kafka日志中,每个分区都有一个log.dir目录。每个分区均分为多个部分。
段只是消息的集合。 Kafka并未将所有信息发送到一个文件中,而是将它们分割成段。
每当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
日志和索引文件前面的00000000000000000000
是段的名称。它表示该段中写入的第一条记录的偏移量。如果有2个段,即段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
文件存储消息的偏移量,物理位置,时间戳以及消息内容。从卡夫卡读取特定偏移量的消息时,在庞大的日志文件中查找偏移量将成为一项昂贵的任务。
这就是.index
文件变得有用的地方。它将消息的偏移量和物理位置存储在日志文件中。
.timeindex
文件基于消息的时间戳。
答案 2 :(得分:0)
下面是示例日志的屏幕截图
您应该添加screenshot
和sample log
,然后我们才能给出您期望的具体答案。
在此之前,只能给您一些常识:
例如:在我的CentOS中,用于文件夹:
/root/logs/kafka/kafka.log/storybook_add-0
storybook_add
:是 topic 名称
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
00000000000000000023.log
:日志文件
00000000000000000023.index
:索引文件00000000000000000023.timeindex
:时间索引文件->
00000000000000000023
称为细分名称
23
?
00000000000000000023.log
中,其中存储第一条消息的位置为23
23
条消息消息数据是什么样的?
我们可以查看其内容:
有关kafka的更多基本概念和逻辑,建议阅读本文: