1、什麼是Apache Flume
java
官網:Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data . It has a simple and flexible architecture based on streaming data flows. It is robust and fault tolerant with tunable reliability mechanisms and many failover and recovery mechanisms. It uses a simple extensible data model that allows for online analytic application.
git
一、flume是一個 分佈式的 日誌 收集系統 ,具備高可靠、高可用、事務管理、失敗重啓等功能。數據處理速度快,徹底能夠用於生產環境。
經常使用的分佈式日誌收集系統:
Apache Flume、
Facebook Scribe、
Apache Chukwa
二、flume的核心是 agent 。agent是一個java進程,運行在日誌收集端,經過agent接收日誌,而後暫存起來,再發送到目的地。
三、agent裏面包含3個核心組件:source、channel、sink。apache
3.一、 source 組件是專用於收集日誌的,能夠處理各類類型各類格式的日誌數據,包括avro、thrift、exec、jms、spooling directory、netcat、 sequence generator、syslog、http、legacy、自定義。source組件把數據收集來之後,臨時存放在channel中。
3.二、 channel 組件是在agent中專用於臨時存儲數據的,能夠存放在memory、jdbc、file、自定義。
channel中的數據只有在sink發送成功以後纔會被刪除。
3.三、 sink 組件是用於把數據發送到目的地的組件,目的地包括hdfs、logger、avro、thrift、ipc、file、null、hbase、solr、自定義。
四、在整個數據傳輸過程當中,流動的是event。事務保證是在event級別。
五、flume能夠支持 多級flume的agent ,支持扇入(fan-in)、扇出(fan-out)。app
Flume簡單處理示意圖
分佈式
Flume複雜處理示意圖flex
2、Flume安裝配置
spa
2.一、下載Flume日誌
Flume下載連接
code
2.二、解壓縮
orm
cd /home/yujianxin/flume
tar -zxvf apache-flume-1.6.0-src.tar.gz ; tar -zxvf apache-flume-1.6.0-bin.tar.gz
而後把src文件夾中的內容所有複製到bin文件夾
2.三、配置Flume環境變量
export FLUME_HOME=xxx/flume-1.6.0-bin
export path=$path:$FLUME_HOME/bin
3、 驗證Flume安裝是否成功
$ flume-ng version
Flume 1.6.0
Source code repository: https://git-wip-us.apache.org/repos/asf/flume.git
Revision: 2561a23240a71ba20bf288c7c2cda88f443c2080
Compiled by hshreedharan on Mon May 11 11:15:44 PDT 2015
From source with checksum b29e416802ce9ece3269d34233baf43f
OK!出現如上截圖,說明Flume成功安裝。Flume的使用請關注後續博文。