我是Flume的新手,我正在探索使用Flume每小时翻转我的HDFS文件的选项。
在我的项目中,Apache Flume将从Rabbit MQ读取消息,并将其写入HDFS。
hdfs.rollInterval
- 它会根据文件打开时的时间间隔关闭文件。
仅当Flume在文件关闭后读取消息时,才会创建新文件。此选项无法解决我们的问题。
hdfs.path = /%y/%m/%d/%H
- 此选项工作正常,每小时创建一个文件夹。但问题是只有在收到新消息时才会创建新文件夹。
例如:消息将持续到11.59,文件将处于打开状态。然后消息一直持续到12.30。但是,该文件仍将处于打开状态。 12.30之后新的消息来了。然后由于 hdfs.path 配置,将关闭先前的文件并在新文件夹中创建新文件。
以前的文件在关闭之前不能用于计算。
我们需要一个完整关闭每小时打开文件的选项。我想知道这样做是否有任何选择。
答案 0 :(得分:0)
滚动当前文件之前等待的秒数
因此,这一行应该导致文件一次分配一个小时
hdfs.rollInterval = 3600
我还会忽略文件大小和事件计数,所以也要添加这些
hdfs.rollSize = 0
hdfs.rollCount = 0
答案 1 :(得分:0)
hdfs.idleTimeout
超时后非活动文件关闭(0 =禁用自动关闭空闲文件)
例如,您可以将此属性设置为180.文件将被打开