Flume概述
Flume定義
Flume是Cloudera提供的一個高可用的,高可靠的,分散式的海量日誌採集、聚合和傳輸的系統。Flume基於流式架構,靈活簡單。
Flume基礎架構
Agent
Agent是一個JVM程式,它以事件的形式將資料從源頭送至目的。
Agent主要有3個部分組成,Source
、Channel
、Sink
。
Source
Source是負責接收資料到Flume Agent的元件。Source元件可以處理各種型別、各種格式的日誌資料,包括avro
、thrift、exec
、jms、spooling directory
、netcat
、sequence generator、syslog、http、legacy。
Sink
Sink不斷地輪詢Channel中的事件且批量地移除它們,並將這些事件批量寫入到儲存或索引系統、或者被髮送到另一個Flume Agent。
Sink元件目的地包括hdfs
、logger
、avro
、thrift、ipc、file
、HBase
、solr、自定義。
Channel
Channel是位於Source和Sink之間的緩衝區。因此,Channel允許Source和Sink運作在不同的速率上。Channel是執行緒安全的,可以同時處理幾個Source的寫入操作和幾個Sink的讀取操作。
Flume自帶兩種Channel:Memory Channel
和File Channel
。
- Memory Channel是記憶體中的佇列。Memory Channel在不需要關心資料丟失的情景下適用。如果需要關心資料丟失,那麼Memory Channel就不應該使用,因為程式死亡、機器當機或者重啟都會導致資料丟失。
- File Channel將所有事件寫到磁碟。因此在程式關閉或機器當機的情況下不會丟失資料。
Event
傳輸單元,Flume資料傳輸的基本單元,以Event的形式將資料從源頭送至目的地。Event由Header
和Body
兩部分組成,Header用來存放該event的一些屬性,為K-V結構,Body用來存放該條資料,形式為位元組陣列。
Flume的核心概念
source
: 使用者需要根據自己的資料來源的型別,選擇合適的source物件。sink
: 使用者需要根據自己的資料儲存的目的地的型別,選擇合適的sink物件。Interceptors
(攔截器): 在source將event放入到channel之前,呼叫攔截器對event進行攔截和處理Channel Selectors
: 當一個source對接多個channel時,由 Channel Selectors選取channel將event存入。sink processor
: 當多個sink從一個channel取資料時,為了保證資料的順序,由sink processor從多個sink中挑選一個sink,由這個sink開始。
相關文章
- flume
- flume + elasticsearchElasticsearch
- Flume:spark-project專案的flume配置SparkProject
- Flume 整合 Kafka_flume 到kafka 配置【轉】Kafka
- spark 與flume 1.6.0Spark
- flume線上配置
- Apache Flume 入門教程Apache
- Flume採集到HDFS
- Flume - [02] Spooling Directory Source
- Flume基礎學習
- flume的安裝部署
- kafka+flume的整合Kafka
- Flume面試題整理面試題
- Flume監控之Ganglia
- 針對flume中扇出複用(源exec)原始碼修改,並編譯flume原始碼編譯
- flume 1.8.0 開發基礎
- Flume 配置環境變數變數
- 大資料之Flume(二)大資料
- 日誌採集框架Flume框架
- FLume相關面試題面試題
- Spark 系列(十五)—— Spark Streaming 整合 FlumeSpark
- Flume安裝及簡單部署
- Apache Sqoop與Apache Flume比較ApacheOOP
- Flume和Hive整合之hive sinkHive
- 使用Flume消費Kafka資料到HDFSKafka
- Flume:資料匯入到hdfs中
- Flume收集日誌到本地目錄
- flume面試理論和應用面試
- 概述
- Flume 在有贊大資料的實踐大資料
- Linux環境Flume安裝配置及使用Linux
- Flume1.7.0下載及安裝部署
- Flume 總結(三)sources型別-1.9.0新版型別
- Flume架構以及應用介紹[轉]架構
- 大資料01-Flume 日誌收集大資料
- 三十七、Flume的安裝及測試
- hadoop之旅10-centerOS7 : Flume環境搭建HadoopROS
- 使用log4j將資料流入flume