Flume内置了大量的Sourece,其中Avro Source、Thrift Source、Spooling Directory Source、Kafka Source具有较好的性能和较广泛的使用场景,下面主要介绍这几种Source。
类型 | 说明 |
---|---|
Avro Source | 支持Avro协议(实际上是Avro RPC),内置支持。 |
Thrift Source | 支持Thrift协议,内置支持。 |
Exec Source | 基于Unix的command在标准输出上生产数据。 |
JMS Source | 从JMS系统(消息、主题)中读取数据,该Source目前只在ActiveMQ中测试。 |
Spooling Directory Source | 监控指定目录内数据变更。 |
Twitter 1% firehose Source | 通过API持续下载Twitter数据,试验性质。 |
Netcat Source | 监控某个端口,将流经端口的每一个文本行数据作为Event输入。 |
Sequence Generator Source | 序列生成器数据源,生产序列数据。 |
Syslog Sources | 读取syslog数据,产生Event,支持UDP和TCP两种协议。 |
HTTP Source | 基于HTTP POST或GET方式的数据源,支持JSON、BLOB表示形式。 |
Kafka Source | 从Kafka Topic中读取数据。 |
Stress Source | 压力测试用。 |
Legacy Sources | 兼容老的Flume OG中Source(0.9.x版本) |
Custom Source | 自定义Source |
Scribe Source |
Avro Source
Avro Source监听Avro端口,接收外部Avro客户端发送过来的Avro Event数据。在多级流中,Avro Source可以和前一个Flume Agent的Avro Sink配对,建立分层收集拓扑。Avro Source的配置如下表所示,表中只列出必填项,更多配置项请参考官方用户手册。
配置项 | 默认值 | 说明 |
---|---|---|
channels | 与Source连接的通道名称。 | |
type | Source的类型名称,值为avro。 | |
port | Source监听的端口 | |
bind | 服务器主机名或者IP地址 |
Avro Source配置参考如下,a1为Agent的实例名称。
a1.sources = r1 #a1中的Source
a1.channels = c1 #a1中的Channel
a1.sources.r1.type = avro #Source的类型
a1.sources.r1.channels = c1 #指定Source r1数据发送到的Channel
a1.sources.r1.bind = 0.0.0.0 #Source绑定的地址
a1.sources<