flume-source
1.1 Avro Source
监听Avro端口,从Avro client streams接收events。要求属性是粗体字。利用Avro Source可以实现多级流动、扇出流、扇入流等效果。另外也可以接受通过flume提供的Avro客户端发送的日志信息。

!channels –
!type – 类型名称,"AVRO"
!bind – 需要监听的主机名或IP
!port – 要监听的端口
threads – 工作线程最大线程数
selector.type
selector.*
interceptors – 空格分隔的拦截器列表
interceptors.*
compression-type none 压缩类型,可以是“none”或“default”,这个值必须和AvroSource的压缩格式匹配
sslfalse 是否启用ssl加密,如果启用还需要配置一个“keystore”和一个“keystore-password”。
keystore – 为SSL提供的java密钥文件所在路径。
keystore-password– 为SSL提供的java密钥文件 密码。
keystore-typeJKS密钥库类型可以是“JKS”或“PKCS12”。
exclude-protocolsSSLv3 空格分隔开的列表,用来指定在SSL / TLS协议中排除。SSLv3将总是被排除除了所指定的协议。
ipFilter false 如果需要为netty开启ip过滤,将此项设置为true
ipFilterRules– 定义netty的ip过滤设置表达式规则
agent a1例子:

ipFilterRules例子:
ipFilterRules=allow:ip:127.*, allow:name:localhost,deny:ip:*
编写配置文件 修改上面给出的配置文件,除了Source部分配置不同,其余部分都一样。不同的地方如下:
#描述/配置Source
a1.sources.r1.type = avro
a1.sources.r1.bind = 0.0.0.0
a1.sources.r1.port =
启动flume:
./flume-ng agent --conf ../conf --conf-file ../conf/template2.conf --name a1 -Dflume.root.logger=INFO,console
通过flume提供的avro客户端向指定机器指定端口发送日志信息:
./flume-ng avro-client --conf ../conf --host 0.0.0.0 --port 44444 --filename ../mydata/log1.txt
会发现确实收集到日志。
1.2 Thrift Source
监听Thrift端口和从外部Thrift client streams接收events。要求属性为粗体字:

agent a1 例子:

1.3 Exec Source
Exec Source在启动时运行一个Unix命令行,并期望这过程在标准输出上连续生产数据。要求属性为粗体字:

agent a1例子:

'shell'配置被用来通过一个命令shell调用‘command’。

1.4 JMS Source
JMS Source从JMS目标(如队列或者主题)读取消息。JMS应用程序应该可以与任何JMS提供程序一起工作,但是只能使用ActiveMQ进行测试。要求属性是粗体字。

agent a1例子:

1.5 Spooling Directory Source
该source让你通过放置被提取文件在磁盘”spooling“目录下这一方式,提取数据。该source将会监控指定目录的新增文件,当新文件出现时解析event。event解析逻辑是可插入的。当一个给定文件被全部读取进channel之后,它被重命名,以标识为已完成(或者可选择deleted)。
要注意的是,放置到自动搜集目录下的文件不能修改,如果修改,则flume会报错。另外,也不能产生重名的文件,如果有重名的文件被放置进来,则flume会报错。


!channels –
!type – 类型,需要指定为"spooldir"
!spoolDir – 读取文件的路径,即"搜集目录"
fileSuffix.COMPLETED对处理完成的文件追加的后缀
agent-1例子:

案例:
编写配置文件 修改上面给出的配置文件,除了Source部分配置不同,其余部分都一样。不同的地方如下:
#描述/配置Source
a1.sources.r1.type = spooldir
a1.sources.r1.spoolDir=/home/park/work/apache-flume-1.6.-bin/mydata
启动flume:
./flume-ng agent --conf ../conf --conf-file ../conf/template4.conf --name a1 -Dflume.root.logger=INFO,console
向指定目录中传输文件,发现flume收集到了该文件,将文件中的每一行都作为日志来处理
1.6 Taildir Source
注意:该source不能用于windows。

agent a1例子:

1.7 Twitter 1% firehose Source(试验)
略
1.8 Kafka Source
Kafka Source是Apache Kafka消费者,从Kfaka topics读取消息。如果你有多个Kafka source在跑,你可以配置它们在相同的Consumer Group,以使它们每个读取topics独特的分区。

以逗号分隔的topic列表进行topic订阅的例子:

通过正则表达式进行topic订阅的例子:

安全和Kafka Source
Kafka 0.9.0支持SASL/GSSAPI 或者 SSL 协议。
设置 kafka.consumer.security.protocol的值:
①SASL_PLAINTEXT - Kerberos or plaintext authentication with no data encryption
②SASL_SSL - Kerberos or plaintext authentication with data encryption
③SSL - TLS based encryption with optional authentication.
TLS和Kafka Source
带有服务端认证和数据加密配置的例子:

注意:属性ssl.endpoint.identification.algorithm没有定义,因此没有hostname验证,为了是hostname验证,可以设置属性:

如果要求有客户端认证,在Flume agent配置中添加下述配置。每个Flume agent必须有它的客户端凭证,以便被Kafka brokers信任。

如果keystore和key使用不用的密码保护,那么ssl.key.password属性需要提供出来:

Kerberos和Kafka Soure
kerberos配置文件可以在flume-env.sh通过JAVA_OPTS指定:

使用SASL_PLAINTEST的安全配置示例:

使用SASL_SSL的安全配置示例:

JAAS文件实例(暂时没看懂):

1.9 NetCat TCP Source
netcat source监听一个给定的端口,然后把接收到的数据每一行转换成一个event。要求属性是粗体字。

!channels–
!type– 类型名称,需要被设置为"netcat"
!bind– 指定要绑定到的ip或主机名。
!port– 指定要绑定到的端口号
max-line-length 512单行最大字节数
agent a1示例:

1.10 NetCat UDP Source
netcat source监听一个给定的端口,然后把text文件的每一行转换成一个event。要求属性是粗体字。


agent a1的示例:

1.11 Sequence Generator Source
一个简单的序列生成器可以不断生成events,带有counter计数器,从0开始,以1递增,在totalEvents停止。当不能发送events到channels时会不断尝试。

agent a1示例:

1.12 Syslog Sources
读取系统日志,并生成Flume events。UDP source以整条消息作为一个简单event。TCP source以新一行”n“分割的字符串作为一个新的event。
1.12.1 Syslog TCP Source
原始的,可靠的Syslog TCP source。

agent a1的syslog TCP source示例:

1.12.2 Multiport Syslog TCP Source
这是一个新的,更快的,多端口的Syslog TCP source版本。注意ports配置替代port。

agent a1的multiport syslog TCP source示例:

1.12.3 Syslog UDP Source

agent a1的syslog UDP source示例:

1.13 HTTP Source
HTTP Source接受HTTP的GET和POST请求作为Flume的事件,其中GET方式应该只用于试验。
该Source需要提供一个可插拔的"处理器"来将请求转换为事件对象,这个处理器必须实现HTTPSourceHandler接口,该处理器接受一个HttpServletRequest对象,并返回一个Flume Envent对象集合。
从一个HTTP请求中得到的事件将在一个事务中提交到通道中。因此允许像文件通道那样对通道提高效率。
如果处理器抛出一个异常,Source将会返回一个400的HTTP状态码。
如果通道已满,无法再将Event加入Channel,则Source返回503的HTTP状态码,表示暂时不可用。


!type 类型,必须为"HTTP"
!port– 监听的端口
bind 0.0.0.0 监听的主机名或ip
handler org.apache.flume.source.http.JSONHandler处理器类,需要实现HTTPSourceHandler接口
handler.* – 处理器的配置参数
selector.type
selector.*
interceptors –
interceptors.*
enableSSL false 是否开启SSL,如果需要设置为true。注意,HTTP不支持SSLv3。
excludeProtocols SSLv3 空格分隔的要排除的SSL/TLS协议。SSLv3总是被排除的。
keystore 密钥库文件所在位置。
keystorePassword Keystore 密钥库密码
agent a1的http source示例:

Handler属性有两种,一是JSONHandler,一是BlobHandler。
BlobHandler用于处理请求参数带有比较大的对象(Binary Large Object),如PDF或者JPG。

案例2:
编写配置文件 修改上面给出的配置文件,除了Source部分配置不同,其余部分都一样。不同的地方如下:
|
1
2
3
|
#描述/配置Source a1.sources.r1.type = http a1.sources.r1.port = 66666 |
启动flume:
./flume-ng agent --conf ../conf --conf-file ../conf/template6.conf --name a1 -Dflume.root.logger=INFO,console
通过命令发送HTTP请求到指定端口:
curl -X POST -d '[{ "headers" :{"a" : "a1","b" : "b1"},"body" : "hello~http~flume~"}]' http://0.0.0.0:6666
1.14 Stress Source
StressSource 是内部负载生成source的实现,这对于压力测试是非常有用的。它允许用户配置Event有效载荷的大小。

agent a1的示例:

1.15 Legacy Sources
legacy sources允许Flume 1.x agent接收来自Flume 0.9.4 agents的events。
legacy source 支持Avro和Thrift RPC 连接。为了使用两个Flume 版本搭建的桥梁,你需要开始一个带有avroLegacy或者thriftLegacy source的Flume 1.x agent。0.9.4agent应该有agent Sink指向1.x agent的host/port。
1.15.1 Avro Legacy Source

agent a1的示例:

1.15.2 Thrift Legacy Source

agent a1的示例:

1.16 Custom Source(自定义Source)
自定义Source是你实现Source接口。当启动Flume agent时,一个自定义source类和它依赖项必须在agent的classpath中。

agent a1的示例:

1.17 Scrible Source
Scribe是另一种类型的提取系统。采用现有的Scribe提取系统,Flume应该使用基于Thrift的兼容传输协议的ScribeSource。


agent a1示例:

flume-source的更多相关文章
- Flume Source 实例
Flume Source 实例 Avro Source 监听avro端口,接收外部avro客户端数据流.跟前面的agent的Avro Sink可以组成多层拓扑结构. 1 2 3 4 5 6 7 8 9 ...
- Flume source 支持的type类型
Flume是一个分布式的高可用的消费组件.通过修改配置文件,可以启动不同的agent处理不同来源的数据. agent包含source,channel,sink三个组件.今天我们学习下source的ty ...
- flume-ng 自定义sink消费flume source
如何从一个已经存在的Flume source消费数据 1.下载flume wget http://www.apache.org/dist/flume/stable/apache-flume-1.5.2 ...
- Flume Source官网剖析(博主推荐)
不多说,直接上干货! 一切来源于flume官网 http://flume.apache.org/FlumeUserGuide.html Flume Sources Avro Source Thrift ...
- <Flume><Source Code><Flume源码阅读笔记>
Overview source采集的日志首先会传入ChannelProcessor, 在其内首先会通过Interceptors进行过滤加工,然后通过ChannelSelector选择channel. ...
- Flume(3)source组件之NetcatSource使用介绍
一.概述: 本节首先提供一个基于netcat的source+channel(memory)+sink(logger)的数据传输过程.然后剖析一下NetcatSource中的代码执行逻辑. 二.flum ...
- Flume组件source,channel,sink源码分析
LifeCycleState: IDLE, START, STOP, ERROR [Source]: org.apache.flume.Source 继承LifeCycleAware{stop() + ...
- flume 使用 spool source的时候字符集出错
1. 错误所在 -- ::, (pool--thread-) [ERROR - org.apache.flume.source.SpoolDirectorySource$SpoolDirectoryR ...
- 把Flume的Source设置为 Spooling directory source
把Flume的Source设置为 Spooling directory source,在设定的目录下放置需要读取的文件,一些文件在读取过程中会报错. 文件格式和报错如下: 实验一 读取汉子和“:&qu ...
- Flume的Avro Sink和Avro Source研究之一: Avro Source
问题 : Avro Source提供了怎么样RPC服务,是怎么提供的? 问题 1.1 Flume Source是如何启动一个Netty Server来提供RPC服务. 由GitHub上avro-rpc ...
随机推荐
- C语言--第六周作业评分和总结(5班)
作业链接:https://edu.cnblogs.com/campus/hljkj/CS2017-5/homework/1250 一.评分要求 要求1 完成PTA第六周所有题,若存在抄袭现象,倒扣此题 ...
- hdu 1864 最大报销额 01背包
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s) ...
- java-权限修饰符的区别
说明:所谓访问权限,是指对象是否可以通过“.”运算符操作自己的变量或通过“.”运算符使用类中的方法. 1.Java中的四种访问修饰符:public.protected.default(无修饰符,默认) ...
- 一次scrapy失败的提示信息:由于连接方在一段时间后没有正确答复或连接的主机没有反 应,连接尝试失败
2017-10-31 19:09:26 [scrapy.extensions.logstats] INFO: Crawled 8096 pages (at 67 pages/min), scraped ...
- RESTful规范(二)
七 解析器 解析器的作用: -用来解析前台传过来的数据编码方式 urlencoded:form表单:name=lqz&age= formdata :上传文件:--dadfgdgag-- jso ...
- python中的print函数
python3.x中将print由一个声明转变成了一个函数. 官方说法: Converts the print statement to the print() function. print(*ob ...
- servlet创建项目过程中,servlet内容重写的两种搭建,tomcat的配置,class的存放位置,web.xml的搭建等注意事项与易错点
运行一个servlet项目:需要做这些前提工作: 1.配置tomcat,在server选项卡的设置也就基本的设置,HTTP port与JMX port等端口号:基本都是默认的.这里需要注意的是,有的教 ...
- LeetCode - Cut Off Trees for Golf Event
You are asked to cut off trees in a forest for a golf event. The forest is represented as a non-nega ...
- mongodb备份与还原
mongodb单机: 备份所有的库: mongodump --host 10.10.7.33:27019 --gzip --out /home/mongodb/0415_bf 备份指定的库: mong ...
- day5 python学习
本日主要讲了列表的一些操作 1.列表的增 ret=['wang','taibai','alxe','ritian'] ret.append("wusir") print(ret) ...