Using Flume要點

flume是什麼

  • 可靠的,可擴展的大數據搬運系統,從數據生產者到數據最終目的地之間充當緩衝的角色,平衡數據生產者和消費者,提供穩定的流狀態。apache

  • 主要的目的地以hdsf以及hbase爲主。api

  • 相似的有apache kafka以及facebook的scribe。數組

爲何要使用flume

  • 把數據存儲到hdfs或者hbase並非簡單地調用api那樣簡單,這裏得考慮各類複雜的場景,好比並發寫入的量以及hdfs及hbase的系統壓力,網絡延遲等等問題。網絡

  • flume設計爲靈活的分佈式系統,提供可定製化的管道,保證不會丟失數據,提供持久的channel併發

flume的構成

agent爲其基本單元(每一個agent包括source、channel、sink三大部分)

圖片描述

source,負責捕獲數據到agent

  • source攔截器,修改或刪除事件分佈式

Avro Source
Exec Source
Spooling Directory Source
NetCat Source
Sequence Generator Source
Syslog Sources
Syslog TCP Source
Multiport Syslog TCP Source
Syslog UDP Source
HTTP Source大數據

channel,一個緩衝區,負責在成功寫入數據到sink以前,保存source已經接收的數據

  • channel過濾器/選擇器(對事件應用過濾條件,決定事件應該寫入到哪一個source附帶的channel中)spa

  • 內置channel設計

Memory Channel
File Channel
JDBC Channelcode

  • channel處理器(處理事件寫入channel)

    圖片描述

sink,負責從channel移走數據到目的地或下一個agent

  • sink運行器(事件處理分發)

  • sink組(包含多個sink)

  • sink處理器(從channel取數據寫入到目的地)
    圖片描述

  • 內置sink

HDFS Sink
Logger Sink
Avro Sink
IRC Sink
File Roll Sink
Null Sink
HBaseSinks
ElasticSearchSink

事件

flume把數據表示爲事件,事件包括byte數組的主體以及map形式的報頭(路由信息)
圖片描述

攔截器

圖片描述

  • 內置攔截器

Timestamp Interceptor
Host Interceptor
Static Interceptor
UUID Interceptor
Morpline Interceptor
Regex Filtering Interceptor
Regex Extractor Interceptor

適用場景

  • 數據能夠表示爲多個獨立記錄

  • 實時推送持續並且量級很大的數據流(若是每幾個小時有幾G的數據,不損害hdfs,不必部署flume)

相關文章
相關標籤/搜索