使用flume将文件从远程节点传输到hdfs

6tdlim6h  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(409)

我有一堆二进制文件压缩成*gz格式。这些是在远程节点上生成的,必须传输到位于数据中心服务器之一的hdfs。
我正在探索用flume发送文件的方法;我探讨了使用假脱机目录配置执行此操作的选项,但显然,这只适用于文件的目录位于同一hdfs节点上的本地情况。
如何解决这个问题有什么建议吗?

olqngx59

olqngx591#

这种情况没有现成的解决方案。但你可以试试这些解决方法:
您可以为此创建自己的源代码实现(通过使用flume sdk)。例如,这个项目似乎能够通过ssh连接到远程dir并将其用作源。
您可以创建一个定制的计划脚本,定期将远程文件复制到本地spool目录中,然后将其用作flume代理的spoolingdir源。
您可以尝试创建另一个脚本来读取远程数据,然后将其写入其输出,并在exec源代码中使用这样的脚本。
您可以在数据所在的机器上找到您的flume(和代理)(请参阅flume的spool dir是否可以在远程机器中?)。

11dmarpk

11dmarpk2#

为什么不运行两个不同的flume代理,一个在远程机器上,另一个在日期节点上。远程计算机上的代理可以读取假脱机目录并将其发送到avro sink。数据节点上的代理可以读取avro源并将数据转储到hdfs。

相关问题