10044---基於Flume的美團日誌收集系統(一)架構和設計
阿新 • • 發佈:2019-02-07
原文
問題導讀:
1.Flume-NG與Scribe對比,Flume-NG的優勢在什麼地方?
2.架構設計考慮需要考慮什麼問題?
3.Agent宕機該如何解決?
4.Collector宕機是否會有影響?
日誌收集是大資料的基石。
許多公司的業務平臺每天都會產生大量的日誌資料。收集業務日誌資料,供離線和線上的分析系統使用,正是日誌收集系統的要做的事情。高可用性,高可靠性和可擴充套件性是日誌收集系統所具有的基本特徵。
目前常用的開源日誌收集系統有Flume,Scribe等。Flume是Cloudera提供的一個高可用的,高可靠的,分散式的海量日誌採集、聚合和傳輸的系統,目前已經是Apache的一個子專案。Scribe是Facebook開源的日誌收集系統,它為日誌的分散式收集,統一處理提供一個可擴充套件的,高容錯的簡單方案。
2 常用的開源日誌收集系統對比
下面將對常見的開源日誌收集系統Flume和Scribe的各方面進行對比。對比中Flume將主要採用Apache下的Flume-NG為參考物件。同時,我們將常用的日誌收集系統分為三層(Agent層,Collector層和Store層)來進行對比。
3 美團日誌收集系統架構
美團的日誌收集系統負責美團的所有業務日誌的收集,並分別給Hadoop平臺提供離線資料和Storm平臺提供實時資料流。美團的日誌收集系統基於Flume設計和搭建而成。目前每天收集和處理約T級別的日誌資料。
下圖是美團的日誌收集系統的整體框架圖
a. 整個系統分為三層:Agent層,Collector層和Store層。其中Agent層每個機器部署一個程序,負責對單機的日誌收集工作;Collector層部署在中心伺服器上,負責接收Agent層傳送的日誌,並且將日誌根據路由規則寫到相應的Store層中;Store層負責提供永久或者臨時的日誌儲存服務,或者將日誌流導向其它伺服器。
b. Agent到Collector使用LoadBalance策略,將所有的日誌均衡地發到所有的Collector上,達到負載均衡的目標,同時並處理單個Collector失效的問題。
2.架構設計考慮需要考慮什麼問題?
3.Agent宕機該如何解決?
4.Collector宕機是否會有影響?
5.Flume-NG可靠性(reliability)方面做了哪些措施?
美團的日誌收集系統負責美團的所有業務日誌的收集,並分別給Hadoop平臺提供離線資料和Storm平臺提供實時資料流。美團的日誌收集系統基於Flume設計和搭建而成。
《基於Flume的美團日誌收集系統》將分兩部分給讀者呈現美團日誌收集系統的架構設計和實戰經驗。 第一部分架構和設計,將主要著眼於日誌收集系統整體的架構設計,以及為什麼要做這樣的設計。 第二部分改進和優化,將主要著眼於實際部署和使用過程中遇到的問題,對Flume做的功能修改和優化等。 1 日誌收集系統簡介a. 整個系統分為三層:Agent層,Collector層和Store層。其中Agent層每個機器部署一個程序,負責對單機的日誌收集工作;Collector層部署在中心伺服器上,負責接收Agent層傳送的日誌,並且將日誌根據路由規則寫到相應的Store層中;Store層負責提供永久或者臨時的日誌儲存服務,或者將日誌流導向其它伺服器。
b. Agent到Collector使用LoadBalance策略,將所有的日誌均衡地發到所有的Collector上,達到負載均衡的目標,同時並處理單個Collector失效的問題。