kafka数据日志目录下有哪些不同的日志

时间:2018-12-12 13:56:59

标签: apache-kafka

我正在尝试了解kafka数据日志。我可以看到在logs.dir中设置的目录下的日志为Topicname_partitionnumber。但是我想知道在它之下捕获的不同日志是什么。以下是示例日志的屏幕截图。 enter image description here

3 个答案:

答案 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文件变得有用的地方。它将消息的偏移量和物理位置存储在日志文件中。

enter image description here

.timeindex文件基于消息的时间戳。

答案 2 :(得分:0)

  

下面是示例日志的屏幕截图

您应该添加screenshotsample 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:日志文件
    • 存储实际数据= kafka消息
  • 00000000000000000023.index:索引文件
  • 00000000000000000023.timeindex:时间索引文件

->

  • 00000000000000000023称为细分名称
    • 为什么23
      • 00000000000000000023.log中,其中存储第一条消息的位置为23
        • kafka之前已完全收到23条消息
  • 消息数据是什么样的?

    • 我们可以查看其内容:

      • cat segment log content

有关kafka的更多基本概念和逻辑,建议阅读本文:

A Practical Introduction to Kafka Storage Internals