apache flume sources

  1. Avro Source

简介:监听Avro端口并从外部的Avro客户端接收事件流,多个flume agent可以通过Avro形成一个组织。

Property Name Default Description

channels –

type – 需要配置为Avro

bind – 需要监听的主机名或ip地址

port – 监听的端口

threads – 工作的最大线程数

selector.type

selector.*

interceptors – 空格分割的拦截器列表

interceptors.*

compression-type none 这块可以是“none”或者“deflate”,压缩类型必须和AvroSource匹配

ssl false 设置为true开启ssl. 同时必须明确 “keystore”和“keystore-password”.

keystore – 这是ssl需要的keystore file的地址

keystore-password – 这是ssl需要的keystore的密码

keystore-type JKS keystore的类型. 可以是“JKS”或者“PKCS12”.

exclude-protocols SSLv3 空格分割的需要排序的SSL/TLS协议. SSLv3默认被排除

ipFilter false 设置为true开启netty的ip过滤

ipFilter.rules – 通过逗号分隔的ip过滤规则

ipFilter.rules例子:ipFilter.rules=allow:ip:127.*,allow:name:localhost,deny:ip:*


2.Thrift Source

简介:监控Thrift客户端并从外部的Thrift客户端接收事件流.

Property Name Default Description

channels –

type – 需要配置为Thrift

bind – 需要监听的主机名或ip地址

port – 需要监听的端口

threads – 工作的最大线程数

selector.type

selector.*

interceptors – 空格分割的拦截器列表

interceptors.*

ssl false 设置为true开启ssl. 同时必须明确 “keystore”和“keystore-    password”.

keystore – This is the path to a Java keystore file. Required for SSL.

keystore-password – The password for the Java keystore. Required for SSL.

keystore-type JKS The type of the Java keystore. This can be “JKS” or “PKCS12”.

exclude-protocols SSLv3 Space-separated list of SSL/TLS protocols to exclude. SSLv3 will always be excluded in addition to the protocols specified.

kerberos false Set to true to enable kerberos authentication. In kerberos mode, agent-principal and agent-keytab are required for successful authentication. The Thrift source in secure mode, will accept connections only from Thrift clients that have kerberos enabled and are successfully authenticated to the kerberos KDC.

agent-principal – The kerberos principal used by the Thrift Source to authenticate to the kerberos KDC.

agent-keytab —- The keytab location used by the Thrift Source in combination with the agent-principal to authenticate to the kerberos KDC.

3.exec source

简介:运行一个给定的unix命令,并且该命令会不断产生标准数据(stderr直接丢弃除非属性 logStdErr设置为true),如果进程因为任何原因失败了,source仍然会继续运行但是没有数据.

Property Name Default Description

channels –

type – 需要设置为exec

command – 执行的unix命令

shell – shell将会调用的命令,如:/bin/sh -c.

restartThrottle 10000     多少毫秒重新执行

restart false 如果命令失败了是否重启

logStdErr false 是否stderr被记录

batchSize 20 一次发送到channel的记录条数

batchTimeout 3000 如果缓存还没有慢,数据在缓存多少毫秒后被发送

selector.type replicating replicating或者multiplexing

selector.* 取决于selector.type的值

interceptors – 空格分割的拦截器列表

interceptors.*

警告:ececsource和其他的异步都是无法保证的source,数据可能会丢失,比如当你在tailf一个文件的时候,进程出现了问题,当恢复正常的时候execsource无法知道上次读取到了什么位置,只会从当前位置开始tail,解决方法是可以使用spool source.

提示:当使用tail时,使用-F参数而不是-f,-F支持文件旋转

4.JMS source

简介:JMS source从JMS目标地址比如queue或者是topic获取信息,我们只有测试过ActiveMQ

Property Name Default Description

channels –

type – 需要设置为jms

initialContextFactory – e.g: org.apache.activemq.jndi.ActiveMQInitialContextFactory

connectionFactory – The JNDI name the connection factory shoulld appear as

providerURL – The JMS provider URL

destinationName – Destination name

destinationType – Destination type (queue or topic)

messageSelector – Message selector to use when creating the consumer

userName – Username for the destination/provider

passwordFile – File containing the password for the destination/provider

batchSize 100 Number of messages to consume in one batch

converter.type DEFAULT Class to use to convert messages to flume events. See below.

converter.* – Converter properties.

converter.charset UTF-8 Default converter only. Charset to use when converting JMS TextMessages to byte arrays.

converter:BytesMessage,TextMessage,ObjectMessage

5.Spooling Directory Source

简介:监听给定目录下文件,然后将文件传输,该source是可靠的不会丢失数据.放到该目录下的文件必须是不可变的,唯一的.

如果有以下条件产生,任务将会报错:

1.当目录中文件被打开写入时,flume将会报错,任务结束

2.当文件被再次使用的时候,flume将会报错,任务结束

为了解决这些问题,使用唯一标识,如timestamp将会有效解决

Property Name Default Description

channels –

type – 需要设置为spooldir.

spoolDir – 读取文件的目录

fileSuffix .COMPLETED 当文件读取完毕后加的后缀名

deletePolicy never 是否删除文件,never或者immediate

fileHeader false 文件是否存储到一个绝对路径

fileHeaderKey file 绝对路径的值

basenameHeader false Whether to add a header storing the basename of the file.

basenameHeaderKey basename Header Key to use when appending basename of file to event header.

ignorePattern ^$    使用正则表达式表示哪些文件被跳过

trackerDir .flumespool 存储进程matadata文件的路径,如果不是绝对路径的话将被解释为spooldir的相对路径

consumeOrder oldest/youngest/random,文件被处理的先后,使用文件的最后修改时间来比较,如果时间一致,文件小的先被处理

maxBackoff 4000 当缓冲池满了后多少毫秒后重新尝试发送

batchSize 100 每次传送到channel的记录数

inputCharset UTF-8 文件被当做文本的编码.

decodeErrorPolicy FAIL 当文件无法解码时怎么做, FAIL: Throw an exception and fail to parse the file. REPLACE: Replace the unparseable character with the “replacement character” char, typically Unicode U+FFFD. IGNORE: Drop the unparseable character sequence.

deserializer LINE 指定文件被怎么样指定为事件, 默认将每一行当做一个事件.自己实现的类必须implement EventDeserializer.Builder.

deserializer.* Varies per event deserializer.

bufferMaxLines – (Obselete) 这个配置目前被忽略

bufferMaxLineLength 5000 (Deprecated) 多少字节的行可以被提交,不赞成使用, Use     deserializer.maxLineLength instead.

selector.type replicating replicating or multiplexing

selector.* Depends on the selector.type value

interceptors – Space-separated list of interceptors

interceptors.*

时间: 2024-10-14 18:49:39

apache flume sources的相关文章

那些年踏过的Apache Flume之路

Flume作为日志采集系统,有着独特的应用和优势,那么Flume在实际的应用和实践中到底是怎样的呢?让我们一起踏上Flume之路. 1.  什么是Apache Flume (1)Apache Flume简单来讲是高性能.分布式的日志采集系统,和sqoop同属于数据采集系统组件,但是sqoop用来采集关系型数据库数据,而Flume用来采集流动型数据. (2)Flume名字来源于原始的近乎实时的日志数据采集工具,现在被广泛用于任何流事件数据的采集,它支持从很多数据源聚合数据到HDFS. (3)Flu

使用Apache Flume抓取数据(1)

使用Apache Flume抓取数据,怎么来抓取呢?不过,在了解这个问题之前,我们必须明确ApacheFlume是什么? 一.什么是Apache Flume Apache Flume是用于数据采集的高性能系统 ,名字来源于原始的近乎实时的日志数据采集工具,现在广泛用于任何流事件数据的采集,支持从很多数据源聚合数据到HDFS. 最初由Cloudera开发 ,在2011年贡献给了Apache基金会 ,在2012年变成了Apache的顶级项目,Flume OG升级换代成了Flume NG. Flume

Data Collection with Apache Flume(二)

今天继续讨论几个agent的配置. 第一个agent是从终端捕获特定命令执行的输出结果,并将文件输出到特定目录.先看一下配置的代码: agent2.sources = execsource //指定为从命令获取输出的source agent2.sinks = filesink //输出到文件的sink agent2.channels = filechannel //输出到文件的channel agent2.sources.execsource.type = exec //类型 agent2.so

Apache Flume 安装文档、日志收集

简介: 官网 http://flume.apache.org 文档 https://flume.apache.org/FlumeUserGuide.html hadoop 生态系统中,flume 的职责是收集数据,一般用作收集各种日志数据. Source -> Channel -> Sink 这是一个基本的工作流程. Source 定义了数据从哪里来,Channel 是一个数据暂存的位置 ( disk / mem ),Sink 定义将数据流向哪里! 一.flume 安装 shell >

Data Collection with Apache Flume(三)

最后提及两个agent.首先第一个是使用一个avro souce和一个avro sink向另一个agent传递event,然后再写入特定目录. 先看看配置代码. agent6.sources = avrosource //定义avrosource,可以使用avro client在网络上向其传送数据 agent6.sinks = avrosink agent6.channels = memorychannel agent6.sources.avrosource.type = avro agent6

【Apache Flume系列】Flume-ng failover 以及Load balance测试及注意事项

好久没写博客了.最近在研究storm.flume和kafka.今天给大伙写下我测试flume failover以及load balance的场景以及一些结论: 测试环境包含5个配置文件,也就是5个agent. 一个主的配置文件,也就是我们配置failover以及load balance关系的配置文件(flume-sink.properties),这个文件在下面的场景 会变动,所以这里就不列举出来了,会在具体的场景中写明: 其他4个配置文件类似: #Name the compents on thi

Flafka: Apache Flume Meets Apache Kafka for Event Processing

The new integration between Flume and Kafka offers sub-second-latency event processing without the need for dedicated infrastructure. In this previous post you learned some Apache Kafka basics and explored a scenario for using Kafka in an online appl

org.apache.flume.conf.ConfigurationException: Channel c1 not in active set.

1 错误详细信息 WARN conf.FlumeConfiguration: Could not configure sink k1 due to: Channel c1 not in active set. org.apache.flume.conf.ConfigurationException: Channel c1 not in active set. at org.apache.flume.conf.FlumeConfiguration$AgentConfiguration.valida

Apache Flume 1.6.0 发布,日志服务器

Apache Flume 1.6.0 发布,此版本现已提供下载: http://flume.apache.org/download.html 更新日志和文档: http://flume.apache.org/releases/1.6.0.html Flume 是一个分布式.可靠和高可用的服务,用于收集.聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型.这是一个可靠.容错的服务. 相关链接 Apache Flume 的详细介绍:请点这里 Apache Flume 的下载地址:请点这里