研讀《基於Hadoop的海量業務數據分析平臺的設計與實現》----flume的數據收集系統的設計

數據收集系統是基於應用服務器日誌的數據收集系統,其目標就是實現數據的收集,預處理,分析進而展示的過程。使用各種產品進行數據展示的過程。在分佈式的系統當中,日誌中的同一服務器可能會記錄多種多樣的日誌,同一個日誌會記錄在不同的服務器上。對於flume方式,每一臺服務器上面會記錄多種多樣的日誌,對於同一個APP1,會爲其配置多個接收數據的agent來接收不同類型的日誌文件。對於APP1和APP2中產生同種日誌,每個服務器上有單獨的agent接收以後會聚合到一個新的agent,最後把數據統一的傳輸到HDFS上面。其中流程如下圖所示。



flume方式是指把實時的數據寫入HDFS中,我們把flume做爲數據傳輸的通道,flume需要創建自己的agent,支持LOG4J的寫入的source只有avro source ,我們採用HDFS分佈式文件系統做爲數據存儲系統,所以採用 HDFS  sink ,爲了保證數據的安全性,我們使用file channel的方式。做爲數據傳輸的通道。


如何才能配置agent了,需要配置哪些參數呢?


如上圖的 配置做一些解釋:

這裏配置一個叫做agent-1的agent,包括avro source ,需要配置它的幾個屬性,type,bind和port,type表示的是source的類型即 avro source ,bind表示他監聽的主機名或者IP,port表示監聽的端口,bind和port加起來就是監聽的應用服務器。

channel採用的是file-channel方式,file-channel可以保證數據在傳輸過程中的一致性,file--channel必須定義一個type屬性,當有多個agent使用file agent做爲數據傳輸的通道時,需要手動的checkpointdir 和datadirs ,其中checkpointdir 保存檢查點的路勁,datadirs保存數據文件的路勁,默認會有一個路勁,但是當有多個agent的時候,只有一個能夠初始化,其他的初始化失敗。

Sink採用的是HDFS sink ,把數據最終保存在HDFS系統中,需要配置type屬性爲hdfs,其中path屬性爲HDFS的文件保存路徑,round表示文件的滾動屬性,上面配置的是24小時進行滾動一次,也就是說24小時產生一個新文件。需要經過多個agent傳輸數據,前一個agent的Sink做爲後一個agent的source的寫入端,多個Agentm都是通過avro sink和avro source進行數據傳輸的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章