apache-kafka - Confluence Kafka Connect HDFS Sink 连接器延迟

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

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

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

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

如果我想计算延迟,我该如何计算?

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

需要弄清楚这是如何发生的。如果我的理解不正确,请告诉我。

最佳答案

Is it the behavior of kafka connect to write it this fast every time or is it storing the data in HDFS already and moves it to the topic directory based on the connector properties?

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

calculate the latency for this

您可以将控制中心与在 Brokers 和 Connect 实例上启用的监控拦截器结合使用。

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

if I stop and delete the topic directory in both /topics and /temp and retrigger the same topic will it again pull data from Kafka

直到某个版本的 HDFS 连接,I believe it resumed from offsets stored in HDFS 。为了在任何其他 Kafka Consumer 中从头开始重新启动,您必须删除或重置消费者组。

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

关于apache-kafka - Confluence Kafka Connect HDFS Sink 连接器延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51447730/

相关文章:

java - Kafka Streams 应用程序在 kafka 服务器上打开太多文件

java - Apache KafkaMetric value 方法已弃用,如何使用 metricValue 代替?

azure - LuceneNet-是否有Hadoop/HDFSDirectory实现?

java - Kafka对同一主题的consumer数量有限制吗?

go - 使用 kafka-go 计划在 Kafka 中创建消费者

go - 我如何知道在 Kafka 中使用哪个分区?

apache-kafka - 无法启动任何 kafka 进程

encryption - 使用 Hadoop 加密

hadoop - 带有按时间戳分区的配置单元表的 sqoop 导出问题

apache-kafka - Kafka自动提交间隔最佳实践