Apache flume每小时推出HDFS文件

时间:2015-08-24 17:46:19

标签: hadoop hdfs flume

我是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 配置,将关闭先前的文件并在新文件夹中创建新文件。

以前的文件在关闭之前不能用于计算。

我们需要一个完整关闭每小时打开文件的选项。我想知道这样做是否有任何选择。

2 个答案:

答案 0 :(得分:0)

hdfs.rollInterval被描述为

  

滚动当前文件之前等待的秒数

因此,这一行应该导致文件一次分配一个小时

hdfs.rollInterval = 3600

我还会忽略文件大小和事件计数,所以也要添加这些

hdfs.rollSize = 0
hdfs.rollCount = 0 

答案 1 :(得分:0)

hdfs.idleTimeout

超时后非活动文件关闭(0 =禁用自动关闭空闲文件)

例如,您可以将此属性设置为180.文件将被打开