zoukankan      html  css  js  c++  java
  • flume笔记-2

      搭好的flume,因为不能完整保存远端传来日志,决定采取自定义sink的方式来记录远端的日志,顺便保存到数据库。动手做起来还是比想象中要简单。

      思路就是按照规范编写jar,放在flume的lib目录,并且配置好sink的类型为自己定义的类名,根据自己的需要写好自定义的配置。

      整个过程可以参看:https://www.cnblogs.com/jhxxb/p/11584363.html。简单来说继承AbstractSink 类并实现 Configurable 接口。configure函数接收配置,start初始化,stop断开外部存储的连接,process进行处理

      如果要保存到oracle数据库,需要把oracle的驱动一起放在lib目录。

      对端传来的数据在event.getBody(),还可以在header中放入k-v值,通过event.getHeaders获取。

      可以通过拦截器Interceptors执行拦截和过滤动作,参看:https://www.jianshu.com/p/c7b3e357fc6b

      我使用拦截器在每个日志生产服务器的sources上增加该机器的ip,而最终落地到数据库上就可以看到该日志来源于哪个服务器。

      client端的配置:

    a1.sources.exec.interceptors = ip
    a1.sources.exec.interceptors.ip.type = host
    a1.sources.exec.interceptors.ip.hostHeader = ip
    a1.sources.exec.interceptors.ip.useIP = true

     

  • 相关阅读:
    javascript之instanceof原理
    x86之描述符表寄存器
    Mac之DTerm
    C的一些特性
    Mac i386 Operands and Addressing Modes
    shell之条件测试
    linux之dup&dup2
    javascript之this
    x86之段描述符
    进制转换
  • 原文地址:https://www.cnblogs.com/badwood316/p/13380779.html
Copyright © 2011-2022 走看看