【Flume-1.8.0】Flume配置相关

4 Flume的配置

4.1在配置文件中使用环境变量

Flume可以在配置文件中使用环境变量:

a1.sources = r1

a1.sources.r1.type = netcat

a1.sources.r1.bind = 0.0.0.0

a1.sources.r1.port = $ {NC_PORT}

a1.sources.r1.channels = c1

注意:只适用于value,不适用于key。也就是说如果使用变量,变量只能出现在配置文件中每个属性行的“=”的右侧。

在启动agent的时候,可以通过设置propertiesImplementation = org.apache.flume.node.EnvVarResolverProperties属性来调用。

比如:

$ NC_PORT=44444 bin/flume-ng agent --conf conf --conf-file example.conf -name a1 -Dflume.root.logger=INFO,console -DpropertiesImplementation=org.apache.flume.node.EnvVarResolverProperties

注意上面只是一个例子,环境变量可以用其他方式配置,包括在conf / flume-env.sh中设置。

1、可以在配置文件中使用变量,变量只能出现在配置的value中。

2、配置文件中的变量有多种配置方式:可以在agent启动的时候传入变量的值,并使用propertiesImplementation = org.apache.flume.node.EnvVarResolverProperties属性来调用。也可以直接在conf/flume-env.sh中设置。

 

4.2记录原始数据

记录原始数据流(通过ingest pipeline)在许多生产环境中不是理想的行为,因为这可能会导致将敏感数据或安全相关配置(如密钥)泄露到Flume日志文件。默认情况下,Flume不会记录这些信息。另一方面,如果数据管道(data pipeline)被破坏,Flume将尝试提供调试问题的线索。

调试事件channel问题的一种方法是设置一个连接到Logger SinkMemory Channel,它将输出所有事件数据到Flume日志。但是在某些情况下,这种方法是不够的。

为了启用事件和配置相关数据的日志记录,除了log4j属性之外,还必须设置一些Java系统属性。要启用与配置相关的日志记录,请设置Java系统属性 -Dorg.apache.flume.log.printconfig = true。这可以通过命令行传递,也可以通过在flume-env.sh中的JAVA_OPTS变量中设置。

要启用数据记录,请按照上述相同的方式设置Java系统属性-Dorg.apache.flume.log.rawdata = true。对于大多数组件,log4j日志记录级别还必须设置为DEBUGTRACE,以使特定于事件的日志记录显示在Flume日志中。

以下是启用配置日志记录和原始数据日志记录的示例,同时还将Log4j loglevel设置为DEBUG以进行控制台输出:

$ bin/flume-ng agent --conf conf --conf-file example.conf --name a1 -Dflume.root.logger=DEBUG,console -Dorg.apache.flume.log.printconfig=true -Dorg.apache.flume.log.rawdata=true

 

1flume允许记录原始数据,允许启用与配置相关的日志记录。

2、要记录原始数据,一种方法是配置一个Logger sink,让它连接到memory channel。另一种方法是配置Java的系统属性-Dorg.apache.flume.log.rawdata = true

3、要记录与配置相关的信息,一种是配置一个Logger sink,和记录原始数据的第一种方法相同,另一种是配置Java的系统属性-Dorg.apache.flume.log.printconfig = true

4、通过配置参数的方式记录数据,可以在agent启动的时候传入,也可以直接在flume-env.sh中设置JAVA_OPTS变量。

5、日志输出的级别是可以调的。比如设置log4j日志记录级别为DEBUGTRACE

 

4.3基于ZooKeeper的配置文件的配置

Flume支持通过Zookeeper来存储配置文件。这是一个实验性功能。配置文件需要在可配置的前缀下上传到Zookeeper中。配置文件存储在Zookeeper节点数据中。下面是代理a1a2Zookeeper节点树的结构。

- /flume

 |- /a1 [Agent config file]

 |- /a2 [Agent config file]

上传配置文件后,使用以下选项启动代理程序:

$ bin /flume-ng agent --conf conf -z zkhost:2181,zkhost1:2181 -p /flume -name a1 -Dflume.root.logger = INFOconsole

 

参数名称

默认值

描述

z

-

ZooKeeper的连接地址,使用hostname:port的方式,逗号分割。

p

/flume

ZooKeeper上面存储agent配置的根路径

 

使用ZooKeeper来存储Flume的配置文件是一个实验功能。

 

4.4安装第三方插件

Flume拥有完全基于插件的架构。虽然Flume带有许多开箱即用的sourcechannelsinkserializer等,但仍然存在许多与Flume分开发布的实现。这些实现需要你自己来实现。

尽管通过在Flume-env.sh文件中将它们的jar添加到FLUME_CLASSPATH变量中可以包含自定义的Flume组件,但Flume现在支持一个名为plugins.d的特殊目录,它可以自动获取以特定格式打包的插件。这样可以更轻松地管理插件打包问题,以及简化几类问题的调试和故障排除,特别是库依赖性冲突。

plugins.d目录位于$ FLUME_HOME / plugins.d。启动时,flume-ng start脚本在plugins.d目录中查找符合以下格式的插件,并在启动java时将它们包含在适当的路径中。

plugins.d中的每个插件(子目录)最多可以有三个子目录:

lib - 插件的 jar(s)文件

libext - 插件的依赖 jar(s)文件

native - 任何需要的本地库文件,比如 .so 文件等等。

plugins.d目录中的两个插件示例:

plugins.d/

plugins.d/custom-source-1/

plugins.d/custom-source-1/lib/my-source.jar

plugins.d/custom-source-1/libext/spring-core-2.5.6 .jar

plugins.d/custom-source-2/

plugins.d/custom-source-2/lib/custom.jar

plugins.d/custom-source-2/native/gettext.so

 

1、当Flume提供的sourcechannelsink不能满足你的要求时,你可以自己实现相应的组件。

2、使用自定义组件,有两种方式,一种是将jar文件添加到FLUME_CLASSPATH变量中。另一种是将jar文件放入名称为plugins.d的目录中。最好使用第二种方式。

3plugins.d目录有特定的结构。它的子文件夹是组件的名称。在组件的这个文件夹下面,最多有三个文件夹,一个名称为lib,存放组件的jar,一个名称为libext,存放jar的依赖,一个为native,存放任何需要的本地库文件。

 

4.5数据输入

Flume支持多种机制来从外部来源提取数据。

RPC

包含在Flume发行版中的Avro客户端可以使用avro RPC机制将给定文件发送到Flume Avro source

$ bin / flume-ng avro-client -H localhost -p 41414 -F /usr/logs/log.10

上述命令会将/usr/logs/log.10的内容发送到在该端口上侦听的Flume源。

执行命令:

有一个exec source执行给定的命令并消费输出。一个单一的输出线,即。文本后跟回车符('\ r')或换行符('\ n')或者两者一起。

网络流:

Flume支持以下机制从常见日志流类型中读取数据,例如Avro,Thrift,Syslog,NetCat

设置多级agent

 

为了使数据在多个agenthop之间流动,前一个agentsink和当前hopsource必须是avro类型,其中sink指向source的主机名(或IP地址)和端口。

1Flume支持多种机制获得数据。比如RPCexecAvroThriftSyslogNetCat等等。

2如果有多个agent,那么前一个agentsink和后一个agentsource必须是avro类型。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值