flume通过网络获取日志

oxf4rvwz  于 2021-06-04  发布在  Hadoop
关注(0)|答案(2)|浏览(283)

我一直在flume中工作,从服务器机器获取日志到hdfs。如果服务器和客户机连接在同一个网络中,我就能够实现这一点。但是,如果服务器和客户机位于不同的网络中,如何实现相同的功能呢。
我需要为此编写自定义源代码吗[刚才查看了cloudera的twitter示例,其中他们使用自己的自定义源获取twitter推文。]
任何帮助都将不胜感激。
谢谢,
卡莱

nxowjjhe

nxowjjhe1#

flume代理需要能够连接到传输事件。这意味着他们需要在同一个网络上。
我不太明白你的问题。你为什么指望它能奏效呢?

dl5txlt9

dl5txlt92#

如果您有一个多宿主机连接两个您想传送的非通话网络,那么可以让flume代理在那里运行,以桥接从一个网络传入的日志并将其传送到另一个网络。因此,您的多宿主主机将充当某种代理。我不知道这是否一定是个好主意,因为你的代理可能已经在忙着做其他事情,如果它是网络之间的唯一链接。但是如果你能设置这个,你就不需要自定义接收器或源了。
如果你有两个不相交的网络都能看到因特网,你可以让一个代理通过http(或tcp,但这需要更多的工作)发布到web服务器,另一个从同一个网站获取它。您需要编写两个定制代理(source和sink)才能以一种性能、可靠和安全的方式工作,更不用说web服务本身了。
最后,如果有两个网络完全断开(有气隙),则可以考虑编写一个自定义接收器,例如,自动检测插入的磁带并将日志复制到磁带。然后你拿着磁带,走到另一个网络,插入它,让另一个代理在那里自动检测它并接收数据:)

相关问题