那些年踏過的Apache Flume之路

來源:互聯網
上載者:User

標籤: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之路

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.