Apache 是一個高可用、高可靠的,分布式的海量日志采集、聚合、傳輸系統,基于流式架構,靈活簡單, Flume 最主要的作用就是實時讀取服務器本地磁盤的資料,將資料寫入HDFS中, Flume組成架構詳解: Source輸入端常用的型別有:spooling directory、exec、avro、syslog、netcat 等 Put事務的流程: doPut:將批資料先寫入臨時緩沖區putList doCommit:檢查channel記憶體佇列是否足夠合并 doRollback;channel記憶體佇列空間不足,回滾資料 Channel是位于Source和Sink之間的緩沖區,Flume自帶兩種channel:MemoryChannel和FileChannel MemoryChannel是基于記憶體的快取,在不需要關心資料丟失的情景下使用, FileChannel是Flume的持久化Channel,系統宕機不會丟失資料, Take事務: doTake:先將資料取到臨時緩沖區takeList doCommit:如果資料發送成功,則清除臨時緩沖區的takeList doRollback:資料發送程序中如果出現例外,rollback將臨時緩沖區takeList中的資料歸還給channel記憶體佇列 Sink組件常見的目的地包括: HDFS、Kafka、avro、logger、File、自定義, Sink不斷地輪詢Channel中的事件且批量地移除它們,并將這些事件批量寫入到存盤或索引系統、或者被發送到另一個Flume Agent, Sink是完全事務性的,在從Channel批量洗掉資料之前,每個Sink用Channel啟動一個事務,批量事件一旦成功寫出到存盤系統或下一個Flume Agent,Sink就利用Channel提交事務,事務一旦被提交,該Channel從自己的內部緩沖區洗掉事件, Sink組件目的地包括hdfs、logger、avro、thrift、ipc、file、null、HBase、solr、自定義, Agent是一個JVM行程,是flume資料傳輸的基本單元 Agent主要有3個部分組成,Source、Channel、Sink,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/52390.html
標籤:大數據
