flume1.8 Sources类型介绍(二)
1 Flume Sources
1.1 Avro Source
监听Avro端口,从Avro client streams接收events。要求属性是粗体字。
agent a1例子:
ipFilterRules例子:
ipFilterRules=allow:ip:127.*, allow:name:localhost,deny:ip:*
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)。
agent-1例子:
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监听一个给定的端口,然后把text文件的每一行转换成一个event。要求属性是粗体字。
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
source 通过HTTP POST 和 GET,接收Flume events。GET只能用于试验。HTTP requests通过 必须实现 HTTPSourceHandler接口的 ”handler“ 转换成flume events。该handler获取HttpServletRequest,然后返回一系列的flume events。
agent a1的http source示例:
Handler属性有两种,一是JSONHandler,一是BlobHandler。
BlobHandler用于处理请求参数带有比较大的对象(Binary Large Object),如PDF或者JPG。
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示例:
参考资料: