flume常用组件解析
flume常用组件解析
Apache Flume 是一个分布式、高可靠、高可用的用来收集、聚合、转移不同来源的大量日志数据到中央数据仓库的工具
数据流模型
1.Event是Flume定义的一个数据流传输的最小单元。
2.Agent就是一个Flume的实例,本质是一个JVM进程,该JVM进程控制Event数据流从外部日志生产者那里传输到目的地(或者是下一个Agent)。
3. 一个完整的Agent中包含了三个组件Source、Channel和Sink,Source是指数据的来源和方式,Channel是一个数据的缓冲池,Sink定义了数据输出的方式和目的地。
复杂流
Flume可以设置多级Agent连接的方式传输Event数据。也支持扇入和扇出的部署方式,类似于负载均衡方式或多点同时备份的方式。
1.可以部署多个Agent组成一个数据流的传输链
2.Agent可以将数据流发到多个下级Agent,也可以从多个Agent发到一个Agent中
Avro Source
Avro Source监听Avro端口接收从外部Avro客户端发送来的数据流。如果与上一层Agent的 Avro Sink 配合使用就组成了一个分层的拓扑结构。 必需的参数已用 粗体 标明。
配置范例:
a1.sources = r1
a1.channels = c1
a1.sources.r1.type = avro
a1.sources.r1.channels = c1
a1.sources.r1.bind = 0.0.0.0
a1.sources.r1.port = 4141
ipFilterRules格式
ipFilterRules=allow:ip:127.*,allow:name:localhost,deny:ip:*
最先匹配到的规则会优先生效:
#只允许localhost的客户端连接,禁止其他所有的连接
ipFilterRules=allow:name:localhost,deny:ip:
#允许除了localhost以外的任意的客户端连接
ipFilterRules=deny:name:localhost,allow:ip: