合流Kafka Connect HDFS Sink连接器延迟

时间:2018-07-20 17:34:13

标签: apache-kafka hdfs kafka-consumer-api apache-kafka-connect confluent

我有一个包含200万条消息的kafka主题,我的刷新大小为100000,默认分区为分布式模式,具有4个工作程序,并且能够在数秒内(10到15秒)立即将数据写入HDFS )。

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

kafka connect的行为是每次都会如此快地写入它吗,还是它已经将数据存储在HDFS中并根据连接器属性将其移动到主题目录了?

如果要为此计算延迟,如何计算?

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

需要清楚这是怎么发生的。如果我的理解不正确,请让我知道。

1 个答案:

答案 0 :(得分:1)

  

kafka connect的行为是每次都会如此快地写入它吗,还是它已经将数据存储在HDFS中并根据连接器属性将其移动到主题目录了?

两者。它是在内存中缓冲并向HDFS上的预写日志写入的Kafka Consumer。 +tmp文件夹包含临时文件,这些临时文件被“压缩”在一起成为更大的HDFS文件,并与Kafka Consumer偏移量提交一起移至最终位置。

  

计算延迟时间

您可以使用带有在Broker和Connect实例上启用的监控拦截器的控制中心。

否则,您可以在CLI中为连接器描述使用者组,以查看使用者延迟。

  

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

高达特定版本的HDFS connect I believe it resumed from offsets stored in HDFS。为了从任何其他Kafka使用者中重新开始,必须删除或重置使用者组。

如果您删除了主题目录,则HDFS中没有其他地方可以连接引用,因此没有备份