Kafka hdfs connect 中 +tmp 的用途

Purpose of +tmp in Kafka hdfs connect

我计划使用 Kafka hdfs connect 将消息从 Kafka 移动到 hdfs。在查看它时,我看到有刷新大小和旋转间隔 Ms 等参数,您可以使用它们在堆中批处理消息并一次写入批处理。 批次是先写到Wal再写到提到的位置。我还看到它创建了一个 +tmp 目录。 +tmp 目录的目的是什么。我们可以直接将整个批次写入具有偏移范围的指定位置下的文件..

Kafka消费者写入HDFS时,会先写入WAL。 +tmp dir 包含所有临时文件,这些文件被压缩到更大的 HDFS 文件中。然后它被移动到实际定义的位置。

其实你可以参考实际的实现来深入理解。

https://github.com/confluentinc/kafka-connect-hdfs/blob/121a69133bc2c136b6aa9d08b23a0799a4cd8799/src/main/java/io/confluent/connect/hdfs/TopicPartitionWriter.java#L611