V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
clancyliu
V2EX  ›  问与答

在 A 机器上有 Nginx,每天生成一个日志文件,如何把这个文件上传到 B 机器的 hdfs 中

  •  
  •   clancyliu · 2020-08-29 11:24:36 +08:00 · 1136 次点击
    这是一个创建于 1583 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在做法是,A 机器的 Nginx 配置 rsyslog 传到 B 机器,然后 B 机器通过 rsyslog 的 httpfs 插件上传到 hdfs 。但是这种做法,数据量一大就丢数据,或者叫停止写入 hdfs,原因还未找到,求助还有没有其他的方式实现这种功能。有试过 flume,但是它的 Exec -tail 的方式只能监听一个文件,这里是每天生成一个文件,还有就是 spoolDir 方式,它支持丢整个文件到文件夹,不能实时写入。还看过其他的 fluentd,filebeat 等,好像都不太能打到要求,很苦恼。

    2 条回复    2020-09-03 17:49:09 +08:00
    hcymk2
        1
    hcymk2  
       2020-08-29 12:07:14 +08:00
    github.com/syslog-ng/syslog-ng 不知道这个是否满足你的要求。
    clancyliu
        2
    clancyliu  
    OP
       2020-09-03 17:49:09 +08:00
    已经找到方案了,flume 里面有一种 Taildir Source , https://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.html#taildir-source
    之前看了很多次文档,都没有注意到这里
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1146 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 17:56 · PVG 01:56 · LAX 09:56 · JFK 12:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.