代码之家  ›  专栏  ›  技术社区  ›  BARATH

汇合kafka connect hdfs sink连接器延迟

  •  0
  • BARATH  · 技术社区  · 6 年前

    我有一个Kafka主题,有200万条消息,刷新大小为100000,默认分区为分布式模式,有4个工作线程,我可以看到数据在几秒钟内(10到15秒)立即写入HDFS。

    我看到已经创建了一个+tmp目录和文件夹,每次触发一个新连接器时都会创建这个主题。

    是kafka connect每次都以如此快的速度编写数据,还是它已经将数据存储在hdfs中,并根据连接器属性将其移动到主题目录?

    如果我想计算这个的延迟,我该如何计算呢?

    如果我停止并删除/topics和/temp中的topic目录并重新触发同一个主题,它会再次从Kafka中提取数据还是从hdfs中的某个位置获取数据作为备份?

    需要澄清这是怎么发生的。如果我的理解不正确,请告诉我。

    1 回复  |  直到 6 年前
        1
  •  1
  •   OneCricketeer Gabriele Mariotti    6 年前

    是kafka connect每次都以如此快的速度编写数据,还是它已经将数据存储在hdfs中,并根据连接器属性将其移动到主题目录?

    两者都有它是一个Kafka用户,在内存中进行缓冲,并在HDFS上写入预写日志这个 +tmp 文件夹保存临时文件,这些文件被“压缩”到更大的hdfs文件中,并与kafka consumer offset commit一起移动到最终位置。

    计算此操作的延迟

    您可以使用在代理和连接实例上启用了监视侦听器的控制中心。

    否则,可以在cli中描述consumer组,以便连接器看到consumer延迟。

    如果我停止并删除/topics和/temp中的topic目录并重新触发同一个topic,它将再次从Kafka中提取数据

    高达某个版本的hdfs connect, I believe it resumed from offsets stored in HDFS . 为了在任何其他卡夫卡使用者中从头重新启动,必须删除或重置使用者组。

    如果删除了topic目录,那么hdfs中没有连接引用的其他位置,因此没有备份。