標籤:source 資料擷取 資料庫資料 flume sqoop
Flume作為日誌採集系統,有著獨特的應用和優勢,那麼Flume在實際的應用和實踐中到底是怎樣的呢?讓我們一起踏上Flume之路。
1、 什麼是Apache Flume
(1)Apache Flume簡單來講是高效能、分布式的日誌採集系統,和sqoop同屬於資料擷取系統組件,但是sqoop用來採集關係型資料庫資料,而Flume用來採集流動型資料。
(2)Flume名字來源於原始的近乎即時的日誌資料擷取工具,現在被廣泛用於任何流事件數目據的採集,它支援從很多資料來源彙總資料到HDFS。
(3)Flume最初由Cloudera開發,在2011年貢獻給了Apache基金會,2012年變成了Apache的頂級項目。Flume OG是Flume最初的版本,後升級換代成了Flume NG
(4)Flume的優勢:可橫向擴充、延展性、可靠性
2、 Flume體繫結構
(1)核心模組Agent:一個獨立的Flume進程,包含了source,channel和sink組件:
a)Source是決定資料從哪裡來以及以什麼樣的方式來進行採集的組件,它會把接受資料轉化成event,event就是一個事件,這個事件有它的事件頭,事件體(資料內容)。
b)Sink就是把event發送到指定的目的地,資料是寫到HDFS,Hive還是Hbase,這些參數和類型選擇都要用sink來完成。
c)Channel介於Source和Sink之間,從Source緩衝event,直到Sink把event取走
3、 Flume設計目標
(1)可靠性
a)Channels提供了Flume可靠性保障,預設Channels的保障模式為Memory Channel,MemoryChannel就是記憶體,將所有的資料存放在裡面,但是它本身存在缺陷,如果斷電資料將會丟失。那怎麼解決這個問題呢? Channels還有另外一種模式,就是基於磁碟的Channels,基於磁碟的隊列確保當出現斷電時資料不丟失,但是在這裡我們必須明確Memory的效能是比磁碟高的。
b)Agent和Channel之間的資料轉送是事務性的,就是在傳輸資料的過程中如果出現了故障,失敗的資料會復原和重試,不會丟失。事務就是保證我們的源到目標整體是完整的,要麼一起成功,要麼一起失敗。
c)相同的任務可以配置多個Agent。比如,兩個agent完成一個資料擷取作業,如果一個agent失敗,則上遊的agent會失敗切換到另一個。
(2)擴充性
當採集的資料過多的時候,Flume既可橫向的擴充,也可以縱向擴充更多的agent來線性地提升系統效能。
(3)延展性
延展性就是Flume到底可以採集什麼樣的資料呢?在Flume中源是由Sources決定的,輸出是由Sinks決定的,Sources和Sinks在Flume當中提供了一些非常豐富的實現。
例如:常見的Sources包括files、syslog和任何linux進程的標準輸出的資料;常用Sinks包括本地檔案系統或HDFS,也可以與kafka實現相容、整合;更靈活的在於開發員可以寫自己的Sources或Sinks。所以Flume既提供了內建的豐富的實現,也可以滿足於針對一些特殊的資料來源進行定製。
4、常見的Flume資料來源:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/8B/DE/wKioL1hbbfjRgtw9AAIH08BMFPA977.png-wh_500x0-wm_3-wmp_4-s_3565941155.png" title="11.png" alt="wKioL1hbbfjRgtw9AAIH08BMFPA977.png-wh_50" />
5、大規模部署執行個體:
(1)Flume使用agents收集資料:
a)Agents可以從很多源接收資料,包括其他agents
b)大規模的部署使用多層來實現擴充性和可靠性
c)Flume支援傳輸中資料的檢查和修改
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/8B/E1/wKiom1hbbhTTBUU2AAHipmRl7HA743.png-wh_500x0-wm_3-wmp_4-s_640603807.png" title="22.png" alt="wKiom1hbbhTTBUU2AAHipmRl7HA743.png-wh_50" />
對於Flume,我們從整體上進行了一個概括和認知解讀,那麼Sources、Sinks、Channels這些具體構件以及Flume的配置會是什麼樣的呢?後續我也會做相應的分享和解答。建議大家在平常多關注和學習大資料的相關資訊和分享知識,多學習別人的經驗,我自己平常喜歡關注公眾號“大資料cn”“大資料時代學習中心”,感覺不錯,希望想學大資料的人可以一起進步。
本文出自 “11872756” 部落格,請務必保留此出處http://11882756.blog.51cto.com/11872756/1885065
那些年踏過的Apache Flume之路