java在writer仍在HDFS上打开时获取文件大小
我正在调查临时工的文件大小。从卡夫卡主题在HDFS上写入的avro文件,但org.apache.hadoop.fs.FileStatus
在写入程序仍处于打开和写入状态时,会继续返回0字节(.getLen()
)
我可以在写入端保留一个长度计数器,但在深层次上,数据被转换为二进制格式(avro),其长度与原始记录不同。它可能是近似的,但我正在寻找更精确的解决方案
有没有办法从hdfs(io.confluent.connect.hdfs.storage.HdfsStorage
)透视图或文件编写器(io.confluent.connect.storage.format.RecordWriter
)透视图获取仍然打开的hdfs文件的大小
# 1 楼答案
最后,我扩展了
AvroRecordWriterProvider
中使用的RecordWriter
,并在FSDataOutputStream
周围添加了一个包装器,以轮询TopicPartitionWriter
中的当前大小法律部澄清后,我将把代码推到一个分叉点,并提供一个链接给所有感兴趣的人