在HDFS上仍然打开编写器时获取文件大小

问题描述 投票:0回答:1

我正在尝试轮询temp的文件大小。从Kafka主题写入HDFS的avro文件,但org.apache.hadoop.fs.FileStatus保持返回0字节(.getLen()),而作者仍然是开放和写作。

我可以在编写器端保留一个长度计数器,但是内部数据被转换为二进制格式(avro),其长度与原始记录不同。它可以近似,但我正在寻找更精确的解决方案。

有没有办法从hdfs(io.confluent.connect.hdfs.storage.HdfsStorage)透视图或文件编写器(io.confluent.connect.storage.format.RecordWriter)角度获取仍然打开的hdfs文件的大小?

java hdfs avro apache-kafka-connect confluent
1个回答
0
投票

最后,我扩展了RecordWriter中使用的AvroRecordWriterProvider,并在FSDataOutputStream周围包含一个包装,以便在TopicPartitionWriter中查看当前大小

法律解除后,我会将代码推送到一个分支,并提供所有感兴趣的人的链接。

© www.soinside.com 2019 - 2024. All rights reserved.