Flume 總結(三)sources型別-1.9.0新版
Flume 總結(三)sources型別
1. 官網
- http://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.html
- 注意區分flume版本
2. sources
- avro sources
這裡可以看出,這裡使用的avro通用序列化協議,可以組成agent之間的級聯
引數最重要就是黑色的, 埠和ip地址
注意這裡涉及到攔截器和選擇器
攔截器可以對資料做清洗,篩選,打標記
選擇器可以根據event的標記,對資料做分發處理,可以有各種分發邏輯,如replicating和multiplexing等策略
- thrift source
顧名思義,這裡可以採集來自thrift通用伺服器的資料,可以組成agent之間的級聯
這裡最重要也是埠和ip
注意,這裡也有攔截器和選擇器,具體看1中解釋
這裡涉及到kerberos,這是大資料企業開發中,比較嚴格的許可權管理時,使用的一種許可權管理協議或者工具軟體(它也是一個軟體)
- exec source
注意,這裡就是監視一個unix或者linux shell命令產生的資料
這裡最重要就是執行的shell 指令
注意,因為這個source是無法進行事務保證的,一旦出錯,資料會丟失,所以官方推薦了另外2個source,taildir source和spooling directory source
- JMS Source
這是和activeMQ訊息佇列元件結合使用的,顧名思義。
- JMS message converter
- SSL and JMS Source
- JMS
注意,這裡涉及到安全加密協議,SSL,實際企業大資料開發中,如果涉及到保險,銀行等金融領域,很多時候如果資料不是內網傳輸,而是公網傳輸,一般都會採用加密協議來保證資料安全性。雖然這些資料主要是日誌資料,但還是會進行加密處理。
- Spooling Directory Source
這是一個可靠的source,可以保證資料不丟失,但可能重複
重點是資料夾的監視,資料夾中檔案不能再放進去之後再改動或者修改名字,或者同名檔案。所以適合已經產生的固定一批日誌檔案的採集。
注意這裡也有攔截器和選擇處理
這裡還有采集後檔案的處理策略,還有遞迴查詢,還有batchSize,也就是一批讀取採集數量,一般這類檔案採集框架,很少會一條一條處理,一般都是一批一批處理,這樣更加高效。具體可以類比java的緩衝流進行讀寫,包括linux檔案流中的緩衝區機制,都是一樣的道理。通過批處理來降低磁碟IO。這一點只要硬碟達不到記憶體的讀寫速度,就會一直存在。
- Taildir Source
不能讀取二進位制檔案
資料讀取是可靠的,對檔案的偏移量會進行記錄來保證失敗後可以重試‘
這裡可以監視檔案組,也就是可以監視資料夾以及其中多個檔案
可以設定batchSize,可以根據檔案對event中設定header標記,這裡很適合一些公司中只有一個日誌叢集,日誌檔案並沒有很好進行劃分的場景,這時候只要不同業務日誌放在不同資料夾或者檔案中,就可以通過這裡設定header中key,然後使用selector選擇器進行資料區分分發
- Twitter 1% firehose Source (experimental)
這是一個實驗性質特性,瞭解即可,不要企業生產中使用
- Kafka Source
可以讀取kafaka中資料,一般按照topic進行讀取
注意還有過期的特性
如果是kafaka叢集,叢集地址加埠,多個地址使用逗號隔開
注意kafaka中資料也可以使用偏移量,或者叫編號進行讀取。
kafaka中資料讀取的安全策略,可以使用kerberos或者ssl兩種安全協議
注意,在大資料企業開發中,如果涉及到金錢如保險,支付,銀行等領域,如果日誌資料採用公網傳輸採集,這時候一般都會使用安全協議來保證日誌資料傳輸安全性。
- NetCat TCP Source
簡單的網路資料來源採集,TCP形式資料
- NetCat UDP Source
簡單的網路資料來源採集,TCP形式資料
- Sequence Generator Source
- Syslog Sources
- Syslog TCP Source
- Multiport Syslog TCP Source
- Syslog UDP Source
- HTTP Source
- Stress Source
適合做壓力測試
- Legacy Sources
- Avro Legacy Source
- Thrift Legacy Source
- Custom Source
自定義source
- Scribe Source
3. Deserializers
4. Handlers
相關文章
- JavaScript基本型別總結JavaScript型別
- OOM異常型別總結OOM型別
- [python] Python型別提示總結Python型別
- JS 資料型別總結JS資料型別
- Python的資料型別總結Python資料型別
- 後臺面試型別總結面試型別
- Go 的資料型別總結Go資料型別
- JavaScript變數型別檢測總結JavaScript變數型別
- Mysql支援的資料型別(總結)MySql資料型別
- Python str型別學習總結(一)Python型別
- go 基礎總結 --- 資料型別Go資料型別
- JavaScript資料型別轉換總結JavaScript資料型別
- PHP弱型別安全問題總結PHP型別
- JS基礎總結(1)——資料型別JS資料型別
- Redis中 HyperLogLog資料型別使用總結Redis資料型別
- 可變資料型別(mutable)與不可變資料型別(immutable)總結資料型別
- 演算法型別大總結(並附經典題型)演算法型別
- golang 中的四種型別轉換總結Golang型別
- IntelliJIDEA中看到classes,sources,javadocs三種jar的區別和各自的作用IntelliJIdeaJavaJAR
- 泛型總結泛型
- Python3學習(基本資料型別-集合-字典-基本資料型別總結)Python資料型別
- 【乾貨】驗證碼的常見型別總結型別
- C++的資料型別總結,不能錯過C++資料型別
- c# 操作Redis的五種基本型別總結C#Redis型別
- Enum列舉型別實戰總結,保證有用!型別
- SpringMVC-方法四種型別返回值總結SpringMVC型別
- 總結下三種stl佇列的api區別佇列API
- 多型的總結多型
- C#與C++型別對應關係總結C#C++型別
- struts 結果型別型別
- JavaScript基礎總結(三)——陣列總結JavaScript陣列
- Cats(三):高階型別型別
- typeScript 基礎型別 (三)TypeScript型別
- 三種輔導型別型別
- 【JVM】垃圾回收器總結(2)——七種垃圾回收器型別JVM型別
- [物件轉原始型別總結] (‘ + obj) === `${obj}`? 不一定!物件型別OBJ
- PHP弱型別在實戰中導致的漏洞總結PHP型別
- 揹包題型總結