Flume总结
Flume
?? ?Flume概述
?? ??? ?Sqoop是采集離線數(shù)據(jù)到大數(shù)據(jù)平臺
?? ??? ??? ?Flume是采集流式數(shù)據(jù)到大數(shù)據(jù)平臺
?? ??? ?Flume概念
?? ??? ??? ?Flume是Cloudera提供的一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng)。Flume基于流式架構,靈活簡單。
?? ??? ?為什么使用flume?
?? ??? ??? ?爬取的數(shù)據(jù),直接從本地到hdfs,不實時,并且讀取速度和向hdfs寫數(shù)據(jù)的速度很難匹配。沒有緩沖處理
?? ??? ??? ?flume最主要的作用就是,實時讀取服務器本地磁盤的數(shù)據(jù),將數(shù)據(jù)寫入到hdfs中
?? ??? ?Flume組成架構 角色
?? ??? ??? ?Agent
?? ??? ??? ??? ?Agent是一個JVM進程,它以事件(Event)的形式將數(shù)據(jù)從源頭送至目的,是Flume數(shù)據(jù)傳輸?shù)幕締卧觓gent之后,進程名稱:Application
?? ??? ??? ??? ?Agent主要有3個部分組成,Source、Channel、Sink。
?? ??? ??? ?Source
?? ??? ??? ??? ?Source是負責接收數(shù)據(jù)到Flume Agent的組件。Source組件可以處理各種類型、各種格式的日志數(shù)據(jù),
?? ??? ??? ??? ?包括avro、thrift、exec(execute)、jms、spooling directory、netcat(讀取端口數(shù)據(jù))、sequence generator、syslog、http、legacy。
?? ??? ??? ?Channel
?? ??? ??? ??? ?Channel是位于Source和Sink之間的緩沖區(qū)。因此,Channel允許Source和Sink運作在不同的速率上。Channel是線程安全的,可以同時處理幾個Source的寫入操作和幾個Sink的讀取操作。
?? ??? ??? ??? ?Flume自帶兩種Channel:Memory Channel和File Channel。
?? ??? ??? ??? ?Memory Channel是內(nèi)存中的隊列。Memory Channel在不需要關心數(shù)據(jù)丟失的情景下適用。如果需要關心數(shù)據(jù)丟失,那么Memory Channel就不應該使用,因為程序死亡、機器宕機或者重啟都會導致數(shù)據(jù)丟失。
?? ??? ??? ??? ?File Channel將所有事件寫到磁盤。因此在程序關閉或機器宕機的情況下不會丟失數(shù)據(jù)。
?? ??? ??? ?Sink
?? ??? ??? ??? ?Sink不斷地輪詢Channel中的事件且批量地移除它們,并將這些事件批量寫入到存儲、或者被發(fā)送到另一個Flume Agent。
?? ??? ??? ??? ?Sink是完全事務性的。在從Channel批量刪除數(shù)據(jù)之前,每個Sink用Channel啟動一個事務。批量事件一旦成功寫出到存儲系統(tǒng)或下一個Flume Agent,Sink就利用Channel提交事務。事務一旦被提交,該Channel從自己的內(nèi)部緩沖區(qū)刪除事件。
?? ??? ??? ??? ?Sink組件目的地包括hdfs、logger、kafka消息隊列、avro、thrift、ipc、file、null、HBase、solr、自定義。
?? ??? ??? ? Event
?? ??? ??? ??? ?傳輸數(shù)據(jù)單元(一條消息|一行數(shù)據(jù)等),Flume數(shù)據(jù)傳輸?shù)幕締卧?#xff0c;以事件的形式將數(shù)據(jù)從源頭送至目的地。
?? ?Flume安裝
?? ??? ?https://blog.csdn.net/qq_41946557/article/details/102997071
?? ?案例實操
?? ??? ?https://blog.csdn.net/qq_41946557/article/details/102997151
總結
- 上一篇: 分享实用监控脚本:使用Shell检查进程
- 下一篇: CDH是什么?