apacheflume每小时发布一次hdfs文件

wmtdaxz3  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(328)

我是flume的新手,我正在探索使用flume每小时滚动我的hdfs文件的选项。
在我的项目中,apacheflume将从rabbitmq读取消息并将其写入hdfs。 hdfs.rollInterval -它根据文件打开的时间间隔关闭文件。
只有当flume在文件关闭后读取消息时,才会创建新文件。这个选择不能解决我们的问题。 hdfs.path = /%y/%m/%d/%H -此选项工作正常,它每小时创建一个文件夹。但问题是,只有收到新邮件时才会创建新文件夹。
例如:消息到达11.59时,文件将处于打开状态。然后短信到12点半才来。但是,文件仍将处于打开状态。12点30分之后,新消息传来。然后,由于hdfs.path配置,将关闭以前的文件,并在新文件夹中创建新文件。
上一个文件在关闭之前不能用于计算。
我们需要一个选项关闭每小时打开的文件。我想知道在Flume里有没有其他的选择。

axr492tv

axr492tv1#

hdfs.idletimeout文件
关闭非活动文件的超时时间(0=禁用自动关闭空闲文件)
例如,可以将此属性设置为180。文件将被打开

aiazj4mn

aiazj4mn2#

hdfs.rollinterval描述为
滚动当前文件前等待的秒数
所以这一行应该使文件一次分配一个小时

hdfs.rollInterval = 3600

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

hdfs.rollSize = 0
hdfs.rollCount = 0

相关问题