Flume Source
Source類型 | 說明 |
Avro Source | 支持Avro協議(實際上是Avro RPC),內置支持 |
Thrift Source | 支持Thrift協議,內置支持 |
Exec Source | 基於Unix的command在標准輸出上生產數據 |
JMS Source | 從JMS系統(消息、主題)中讀取數據,ActiveMQ已經測試過 |
Spooling Directory Source | 監控指定目錄內數據變更 |
Twitter 1% firehose Source | 通過API持續下載Twitter數據,試驗性質 |
Netcat Source | 監控某個端口,將流經端口的每一個文本行數據作為Event輸入 |
Sequence Generator Source | 序列生成器數據源,生產序列數據 |
Syslog Sources syslogtcp multiport_syslogtcp syslogudp |
讀取syslog數據,產生Event,支持UDP和TCP兩種協議 |
HTTP Source | 基於HTTP POST或GET方式的數據源,支持JSON、BLOB表示形式 |
Legacy Sources |
兼容老的Flume OG中Source(0.9.x版本) |
Avro Legacy Source |
|
Thrift Legacy Source |
|
Scribe Source |
|
Custom Source |
自定義Source |
Flume Sink
Sink類型 | 說明 |
HDFS Sink | 數據寫入HDFS |
Logger Sink | 數據寫入日志文件 |
Avro Sink | 數據被轉換成Avro Event,然后發送到配置的RPC端口上 |
Thrift Sink | 數據被轉換成Thrift Event,然后發送到配置的RPC端口上 |
IRC Sink | 數據在IRC上進行回放 |
File Roll Sink | 存儲數據到本地文件系統 |
Null Sink | 丟棄到所有數據 |
HBase Sink | 數據寫入HBase數據庫 |
Morphline Solr Sink | 數據發送到Solr搜索服務器(集群) |
ElasticSearch Sink | 數據發送到Elastic Search搜索服務器(集群) |
Kite Dataset Sink | 寫數據到Kite Dataset,試驗性質的 |
Custom Sink | 自定義Sink實現 |
Flume Channel
Channel類型 | 說明 |
Memory Channel | Event數據存儲在內存中 |
JDBC Channel | Event數據存儲在持久化存儲中,當前Flume Channel內置支持Derby |
File Channel | Event數據存儲在磁盤文件中 |
Spillable Memory Channel | Event數據存儲在內存中和磁盤上,當內存隊列滿了,會持久化到磁盤文件(當前試驗性的,不建議生產環境使用) |
Pseudo Transaction Channel | 測試用途 |
Custom Channel | 自定義Channel實現 |
Channel Selector
Sink Processor
Event Serializer
Event Deserializers
在source組件上指定,反序列化,將輸入(文件、流)解析成event的方式,
Deserializer類型 | 說明 |
LINE | 默認值,將文本輸入的每行轉換成一個event |
AVRO | 讀取avro文件,將其中的每條avro記錄轉換成一個event,每個event都附帶着模式信息 |
BlobDeserializer | 將整個二進制大數據轉換成一個evnt,通常一個BLOB就是一個文件,比如PDF、JPG |
比如:
1
2
|
a1.sources=s1
a1.sources.s1.deserializer=LINE
|
注意:
LINE有個設置每行字符個數的屬性:deserializer.maxLineLength,默認是2048,大於這個字符數的行將被截斷。
BlobDeserializer有個設置文件大小的屬性:deserializer.maxBlobLength默認是100000000(大約95M),大於這個值的文件將被拆分成多個文件。
Event Serializers
在sink組將上指定,序列化,將event對象轉換成文件的方式。
Serializer類型 | 說明 |
TEXT(Body Text Serializer) | 默認值,將event中body里的數據不做改變的轉換成輸出流,event的header將被忽略 |
AVRO_EVENT(Avro Event Serializer) | 將event轉換成avro文件 |
BlobDeserializer | 將整個二進制大數據轉換成一個evnt,通常一個BLOB就是一個文件,比如PDF、JPG |
Interceptor
攔截器可以修改或刪除event。
攔截器可以組成攔截器鏈,中間用空格分隔,攔截器的配置順序即是它們的執行順序。
Handler類型 | 說明 |
Timestamp Interceptor |
向event header中添加了timestamp變量,值是時間戳 |
Host Interceptor |
向event header中添加了host變量,可以通%{host}引用(比如在HDFS sink中的路徑占位符) |
Static Interceptor |
配置一個靜態的值到event header里,多個靜態值需要配多個static interceptor |
UUID Interceptor |
向event header里添加變量id,值是隨機生成的uuid,可以用這個唯一標識一個event |
Morphline Interceptor |
使用morphline配置文件過濾event。 |
Regex Filtering Interceptor |
使用正則表達式過濾(include或exclude)event。 |
Regex Extractor Interceptor | 使用正則表達式來向header中添加key、value。 |
配置實例:
1
2
3
4
5
6
|
a1.sources=s1
...
a1.sources.s1.interceptors=i1 i2
a1.sources.s1.interceptors.i1.type=host
a1.sources.s1.interceptors.i1.hostHeader=host
a1.sources.s1.interceptors.i2.type=timestamp
|
type可以是全限定類名或者是別名