1. 程式人生 > >flume1.8 使用指南學習感悟(二)

flume1.8 使用指南學習感悟(二)

接收 應用 密碼 lin and apach 依賴 arch ogg

1. Flume Sinks

1.1 HDFS Sink

該sink把events寫進Hadoop分布式文件系統(HDFS)。它目前支持創建文本和序列文件。它支持在兩種文件類型壓縮。文件可以基於數據的經過時間或者大小或者事件的數量周期性地滾動。它還通過屬性(如時間戳或發生事件的機器)把數據劃分為桶或區。

技術分享圖片

技術分享圖片

agent a1的示例:

技術分享圖片

上述配置會將時間戳降到最後10分鐘。例如,帶有11:54:34 AM,June 12,2012時間戳的event將會造成hdfs路徑變成/flume/events/2012-06-12/1150/00。

1.2 Hive Sink

該sink streams 將包含分割文本或者JSON數據的events直接傳送到Hive表或分區中。使用Hive 事務寫events。當一系列events提交到Hive時,它們馬上可以被Hive查詢到。

技術分享圖片

技術分享圖片

Hive table 示例:

技術分享圖片

agent a1示例:

技術分享圖片

上述配置將會把時間戳降到最後10分鐘。例如,event時間戳 header設置為 11:54:34 AM, June 12,2012 ,和 ‘country’ header 設置 為 ‘india’ , 該event評估到partition(continent=‘asia‘, country=‘india‘, time=‘2012-06-12-11-50‘)。

1.3 Logger Sink

Logs event 在INFO 水平。典型用法是測試或者調試。

技術分享圖片

agent a1 示例:

技術分享圖片

1.4 Avro Sink

Flume events發送到sink,轉換為Avro events,並發送到配置好的hostname/port。從配置好的channel按照配置好的批量大小批量獲取events。

技術分享圖片

技術分享圖片

agent a1示例:

技術分享圖片

1.5 Thrift Sink

Flume events發送到sink,轉換為Thrift events,並發送到配置好的hostname/port。從配置好的channel按照配置好的批量大小批量獲取events。

技術分享圖片

agent a1示例:

技術分享圖片

1.5 IRC Sink

IRC sink從鏈接的channel獲取消息和推送消息到配置的IRC目的地。

技術分享圖片

agent a1示例:

技術分享圖片

1.6 File Roll Sink

在本地文件系統存儲events。

技術分享圖片

技術分享圖片

agent a1示例:

技術分享圖片

1.7 Null Sink

當接收到channel時丟棄所有events。

技術分享圖片

agent a1示例:

技術分享圖片

1.7 HBaseSinks

1.7.1 HBaseSink

該sink寫數據到HBase。

技術分享圖片

agent a1 示例:

技術分享圖片

1.7.2 AsyncHBaseSink

該sink采用異步模式寫數據到HBase。

技術分享圖片

agent a1示例:

技術分享圖片

1.8 MorphlineSolrSink

該sink從Flume events提取數據並轉換,在Apache Solr 服務端實時加載,Apache Solr servers為最終用戶或者搜索應用程序提供查詢服務。

技術分享圖片

技術分享圖片

agent a1示例:

技術分享圖片

1.9 ElasticSearchSink

該sink寫數據到elasticsearch集群。

技術分享圖片

技術分享圖片

agent a1示例:

技術分享圖片

1.10 Kite Dataset Sink

試驗sink寫event到Kite Dataset。

技術分享圖片

1.11 Kafka Sink

Flume Sink實現可以導出數據到一個Kafka topic。

技術分享圖片

Kafka sink配置例子:

技術分享圖片

1.11.1 Security and Kafka Sink

Flume和Kafka之間的聯系channel支持安全認證和數據加密。

安全認證SASL/GSSAPI(Kerberos V5) 或者 SSL(TLS實現) 可以被用於Kafka 版本 0.9.0 。

數據加密由SSL/TLS提供。

設置kafka.producer.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 Sink:

帶有服務端認證和數據加密配置的例子:

技術分享圖片

註意:屬性ssl.endpoint.identification.algorithm沒有定義,因此沒有hostname驗證,為了是hostname驗證,可以設置屬性:

技術分享圖片

如果要求有客戶端認證,在Flume agent配置中添加下述配置。每個Flume agent必須有它的客戶端憑證,以便被Kafka brokers信任。

技術分享圖片

如果keystore和key使用不用的密碼保護,那麽ssl.key.password屬性需要提供出來:

技術分享圖片

Kerberos and Kafka Sink:

kerberos配置文件可以在flume-env.sh通過JAVA_OPTS指定:

技術分享圖片

使用SASL_PLAINTEST的安全配置示例:

技術分享圖片

使用SASL_SSL的安全配置示例:

技術分享圖片

JAAS文件實例(暫時沒看懂):

技術分享圖片

1.12 HTTP Sink

該sink將會從channel獲取events,並使用HTTP POST請求發送這些events到遠程服務。event 內容作為POST body發送。

技術分享圖片

agent a1示例:

技術分享圖片

1.13 Custom Sink(自定義Sink)

自定義sink是你實現Sink接口。當啟動Flume agent時,一個自定義sink類和它依賴項必須在agent的classpath中。

技術分享圖片

agent a1 示例:

技術分享圖片

參考資料:

https://flume.apache.org/FlumeUserGuide.html

flume1.8 使用指南學習感悟(二)