繁体   English   中英

几个Flume-ng hdfs接收器写入相同的路径

[英]Several Flume-ng hdfs sinks write to same path

我想了解flume-ng如何在文件名冲突方面处理这种情况。 我有几个同样配置的flume代理的实例,客户端将它们用作负载均衡组。

a1.sinks.k1.hdfs.path = / flume / events / path

水槽代理如何生成文件名以使其在代理中独一无二? 它是否以某种方式将代理名称附加到它(名称看起来像数字,所以很难弄明白)?

Flume没有自动解决这个问题。 默认情况下,HDFS接收器会创建名称等于当前时间戳(以毫秒为单位)的新文件,因此如果在同一时刻创建了两个文件,则可能会发生冲突。

修复它的一种方法是在不同的接收器中手动设置不同的文件前缀:

a1.sinks.k1.hdfs.filePrefix = agentX

您还可以在前缀定义中使用事件标头。 例如,如果您使用主机拦截器 ,它将事件“host”标头添加到代理程序主机名的值,您可以执行以下操作:

a1.sinks.k1.hdfs.filePrefix = ${host}

如果您需要完全自动生成唯一的文件名,您可以开发自己的拦截器,它将向事件添加UUID标头。 这里的例子。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM