我想使用Flume收集Python脚本中的日志,所以我按照用户指南使用netcat源配置Flume,然后我使用telnet和nc进行测试,它运行良好。
我的配置代码:
a1.sources = …
发生这种情况的原因是因为您没有等待响应回来。默认情况下,Flume的netcat源将为每个事件发回“OK”消息。您可以在发送响应之前终止连接,这会导致处理其他消息失败(因为管道已从客户端断开)。
要解决此问题,您需要对flume.conf进行以下更改:
a1.sources.r1.ack-every-event=false
这消除了发送“OK”的要求,因此停止了故障。
或者,您可以更改Python以等待每次在关闭连接之前发送“OK”消息。人为地,添加一个睡眠声明 应该 也解决了这个问题,尽管你要假设处理你的消息可能需要多长时间。通常很好,但可能有其他情况导致处理延迟。