您好,登錄后才能下訂單哦!
使用Apache Flume抓取數據,怎么來抓取呢?不過,在了解這個問題之前,我們必須明確ApacheFlume是什么?
一、什么是Apache Flume
Apache Flume是用于數據采集的高性能系統(tǒng) ,名字來源于原始的近乎實時的日志數據采集工具,現在廣泛用于任何流事件數據的采集,支持從很多數據源聚合數據到HDFS。
最初由Cloudera開發(fā) ,在2011年貢獻給了Apache基金會 ,在2012年變成了Apache的頂級項目,Flume OG升級換代成了Flume NG。
Flume具有橫向擴展、延展性、可靠性的優(yōu)勢
二、Flume 體系結構
Source:接受外部系統(tǒng)生成event
Sink:發(fā)送event到指定的目的地
Channel:從Source緩存event,直到Sink把event取走
Agent:一個獨立的Flume進程,包含了source,channel和sink組件
三、Flume設計目標:可靠性
Channels提供了Flume可靠性保障 ,那么它通過什么樣的方式來保障呢?默認的模式就是Memory Channel,Memory Channel就是內存,所有的數據存放在內存當中。那么,這里就會存在一個問題?如果Channel的節(jié)點出現斷電,數據就會丟失。為解決這一問題,這里有另外一種模式,就是基于磁盤的Channel,基于磁盤的隊列確保出現斷電時數據不丟失 。
另外,Agent和Channel之間的數據傳輸是事務性的 ,傳輸給下游agent失敗的數據會回滾和重試 。相同的任務可以配置多個Agent,
比如,兩個agent完成一個數據采集作業(yè),如果一個agent失敗,則上游的agent會失敗切換到另一個。
四、Flume設計目標:擴展性
當我們采集的數據特別多的時候,可以通過添加更多的系統(tǒng)資源從而線性地增加系統(tǒng)性能。而且Flume可橫向的擴展規(guī)模 ,隨著復雜增加,可以添加更多的機器到配置當中 。
五、Flume設計目標:延展性
延展性就是能夠添加新的功能到系統(tǒng)中。Flume通過添加Sources和Sinks到現有的存儲層或數據平臺,常見的Sources包括files、syslog和任何linux進程的標準輸出的數據;常用Sinks包括本地文件系統(tǒng)或HDFS,開發(fā)員可以寫自己的Sources或Sinks。
六、常見的Flume數據源
七、大規(guī)模部署實例
Flume使用agents收集數據 ,Agents可以從很多源接收數據,包括其他agents。大規(guī)模的部署使用多層來實現擴展性和可靠,Flume支持傳輸中數據的檢查和修改。
以上就是關于Apache Flume的部分詳情介紹,后續(xù)將會繼續(xù)分享。大數據將會是未來的風口,要想很好的站在風口上,就要持續(xù)不斷地學習和努力,這里推薦大家關注一個微信公眾號“大數據cn ”,里面有很多關于大數據知識的介紹,對于想要了解和學習大數據的人是一個很好的平臺。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。