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示例:

參考資料:
