Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 卡夫卡数据日志目录下有哪些不同的日志_Apache Kafka - Fatal编程技术网

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

Apache kafka 卡夫卡数据日志目录下有哪些不同的日志,apache-kafka,Apache Kafka,我试图理解卡夫卡的数据日志。我可以看到logs.dir中设置的dir下的日志为“Topicname\u partitionnumber”。但是,我想知道在它下面捕获的不同日志是什么。下面是示例日志的屏幕截图 不带后缀的文件是段文件,即数据实际写入的文件,以最早包含的消息偏移量命名。其中最新的一个是活动段,即消息当前附加到的段 .index是段文件中从偏移量到位置的对应映射.timeindex是从时间戳到偏移量的映射。在Kafka日志中,每个分区都有一个log.dir目录。每个分区被分割成若干段

我试图理解卡夫卡的数据日志。我可以看到logs.dir中设置的dir下的日志为“Topicname\u partitionnumber”。但是,我想知道在它下面捕获的不同日志是什么。下面是示例日志的屏幕截图


不带后缀的文件是段文件,即数据实际写入的文件,以最早包含的消息偏移量命名。其中最新的一个是活动段,即消息当前附加到的段


.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.索引
    :索引文件
  • 00000000000023.timeindex
    :timeindex文件
->

  • 00000000000023
    调用的段名称
    • 为什么
      23
      • 00000000000023.log
        中,存储第一条消息的位置是23
        • 卡夫卡此前共收到
          23条
          消息
  • 消息数据是什么样子的

    • 我们可以看穿它的内容:


关于卡夫卡的进一步基本概念和逻辑,建议阅读本文:


感谢信的可能副本。这说明了这一点。此外,我在.log文件中没有看到消息时间戳。我们是否需要对配置文件进行任何更改才能将其记录下来?我们需要及时知道分区中的消息。Kafka 0.10+版本的消息中包含时间戳。您使用的是哪个卡夫卡版本?0.10.2.x是卡夫卡版本。这是一个.log(数据)文件中的示例。我能看到几个额外的字符/符号,但看不到日期。我试着用记事本和记事本++打开它。