我一直在Flume工作,将日志从服务器机器提取到HDFS。如果服务器和客户端计算机连接在同一网络中,我就能实现这一点。但是,如果服务器和客户端位于不同的网络中,我怎样才能实现相同目标。
我需要为此编写自定义源吗? [刚刚使用来自cloudera的twitter示例进行检查,他们使用自己的自定义来源获取Twitter推文。]
非常感谢任何帮助。
谢谢,
卡莱
答案 0 :(得分:1)
如果您有一个多宿主主机加入两个非通话网络,您可以在那里运行一个水槽代理来桥接来自一个网络的日志并将其传送到另一个网络。因此,您的多宿主主机将充当一种代理。我不知道这是否是一个好主意,因为如果它是网络之间的唯一链接,你的代理可能已经忙于做其他事情。但是如果你可以设置它,你就不会需要自定义接收器或源。
如果你有两个可以同时看到互联网的不相交的网络,你可以通过HTTP向一个Web服务器发布一个代理帖子(或者就此而言是TCP,但它的工作量更多),另一个从同一个网站。您需要编写两个自定义代理(源代码和接收器)才能以高性能,可靠和安全的方式工作,更不用说Web服务本身了。
最后,如果您有两个完全断开连接的网络(带有气隙),那么您可以考虑编写一个自定义接收器,例如,自动检测插入的磁带并将日志复制到磁带。然后你拿走磁带,走到另一个网络,插上电源,然后让另一个代理自动检测它并摄取数据:)
答案 1 :(得分:0)
Flume代理需要能够连接到传输事件。这意味着他们需要在同一个网络上。
我不确定我理解你的问题。你为什么期望它能够发挥作用呢?