flume流動模型
Flume常用source類型
1、Avro 類型的Source:
監(jiān)聽Avro 端口來接收外部avro客戶端的事件流。avro-source接收到的是經(jīng)過avro序列化后的數(shù)據(jù),然后 反序列化數(shù)據(jù)繼續(xù)傳輸。所以,源數(shù)據(jù)必須是經(jīng)過avro序列化后的數(shù)據(jù)。利用 Avro source可以實現(xiàn)多級流動、扇出流、扇入流等效果。接收通過flume提供的avro客戶端發(fā)送的日志信息。
是flume的第一種數(shù)據(jù)來源,可以監(jiān)聽IP和端口,并不一定是本機的IP,可以監(jiān)聽其他機器的IP和port,用于獲取數(shù)據(jù),需要指定type,bind,以及port,其他都可以使用默認配置,而且可以配置攔截哪些IP的請求,對其不進行監(jiān)聽;
2、Exec類型的Source:
可以將命令產(chǎn)生的輸出作為源
a1.sources.r1.command=ping 192.168.234.163 要執(zhí)行的命令
可以運行指定的Unix命令,然后該命令會一直執(zhí)行,讀取文件,作為flume數(shù)據(jù)的來源;需要配置相應(yīng)的channel,type,以及運行的命令;本方式不保證數(shù)據(jù)一定能夠輸送到channel,如果出現(xiàn)問題,則數(shù)據(jù)可能丟失;在這種條件下,建議使用Spooling Directory等其他手段,保證數(shù)據(jù)傳輸;
3、Taildir Source
監(jiān)控指定的多個文件,一旦文件內(nèi)有新寫入的數(shù)據(jù),就會將其寫入到指定的sink內(nèi),本來源可靠性高,不會丟失數(shù)據(jù),建議使用;但目前不適用于Windows系統(tǒng);其不會對于跟蹤的文件有任何處理,不會重命名也不會刪除,不會做任何修改,這點比Spooling Source有優(yōu)勢;目前不支持讀取二進制文件,支持一行一行的讀取文本文件;在實時數(shù)據(jù)處理中,可以用該方式取代Exec方式,因為本方式可靠性高。
4、Spooling Directory類型的 Source:
將指定的文件加入到“自動搜集”目錄中。flume會持續(xù)監(jiān)聽這個目錄,把文件當(dāng)做source來處理。注意:一旦文件被放到“自動收集”目錄中后,便不能修改,如果修改,flume會報錯。此外,也不能有重名的文件,如果有,flume也會報錯。
a1.sources.r1.spoolDir=/home/work/data 讀取文件的路徑,即"搜集目錄"
常用于離線數(shù)據(jù)處理,允許用戶把文件放到磁盤上Spooling的目錄,然后監(jiān)控指定目錄,一旦出現(xiàn)新的文件,就會解析新文件的內(nèi)容,傳輸?shù)蕉x的sink中,傳輸過程中的解析邏輯可以自行指定,如果文件讀取完畢之后,文件會重命名,或者可選擇刪除;可靠性較強,而且即使flume重啟,也不會丟失數(shù)據(jù),為了保證可靠性,只能是不可變的,唯一命名的文件可以放在目錄下,可以通過log4j來定義日志名稱,這樣基本不會重名,而且日志文件生成之后,一般來說都不會更改;
5、NetCat Source:
一個NetCat Source用來監(jiān)聽一個指定端口,并接收監(jiān)聽到的數(shù)據(jù)。把傳入的每一行文本都作為event傳入sink中,可以通過nc -k -l [host] [port]來作為外部數(shù)據(jù)來源,flume可以通過此種來源進行監(jiān)聽;
6、Kafka Source
支持從Kafka指定的topic中讀取數(shù)據(jù)。
7、Sequence Generator Source --序列發(fā)生源:
一個簡單的序列發(fā)生器,不斷的產(chǎn)生事件,值是從0開始每次遞增1。主要用來測試。








暫無數(shù)據(jù)