我计划使用kafka hdfs connect将消息从kafka移动到hdfs。在研究它的过程中,我看到有一些参数,比如flush size和rotate interval ms,您可以使用这些参数在堆中批处理消息并一次写入批处理。是否先将批次写入wal,然后再写入所述位置。我还看到它创建了一个+tmp目录。+tmp目录的用途是什么。我们可以直接将整个批作为文件写入指定位置下的偏移量范围内。。
我计划使用kafka hdfs connect将消息从kafka移动到hdfs。在研究它的过程中,我看到有一些参数,比如flush size和rotate interval ms,您可以使用这些参数在堆中批处理消息并一次写入批处理。是否先将批次写入wal,然后再写入所述位置。我还看到它创建了一个+tmp目录。+tmp目录的用途是什么。我们可以直接将整个批作为文件写入指定位置下的偏移量范围内。。
1条答案
按热度按时间9q78igpj1#
当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