Flume系列一之架構介紹和安裝

Flume架構介紹和安裝

寫在前面
在學習一門新的技術以前,咱們得知道了解這個東西有什麼用?咱們可使用它來作些什麼呢?簡單來講,flume是大數據日誌分析中不能缺乏的一個組件,既可使用在流處理中,也可使用在數據的批處理中。
1.流處理:
這裏寫圖片描述
2.離線批處理:
這裏寫圖片描述
分析:無論你是數據的實時流處理,仍是數據的離線批處理,都是會使用flume這個日誌收集框架來作日誌的收集。所以,學習這個這個組件是很重要的。這個組件的使用也是很簡單的。html

簡單介紹一下Flume
Flume是一種分佈式的、可靠的、可用的服務,用於高效地收集、聚合和移動大量日誌數據。它具備基於流數據流的簡單靈活的體系結構。它具備可調的可靠性機制和許多故障轉移和恢復機制,具備健壯性和容錯性。它使用一個簡單的可擴展的數據模型,容許聯機分析應用程序。
一句話總結:Flume就是用來作日誌收集的這麼一個工具java

Flume架構介紹
這裏寫圖片描述
1) Source 收集 (從webserver讀取數據到Channel中去)git

2) Channel 彙集 (減小直接與磁盤的對接次數(生產環境中通常使用類型爲Memory),當channel滿了,再寫到sink中去。同時,也起到了容錯的做用,由於只有當sink接收到了數據,channel纔會把原有的數據丟棄)web

3) Sink 輸出(從channel中讀取數據,寫到目的地,這裏的目的地能夠是HDFS、其他的一些文件系統或者做爲下一個agent的source等)apache

順便說一下
Event的概念
在整個數據的收集彙集傳送的過程當中,流動的是event,即事務保證是在event級別進行的。
那麼什麼是event呢?—–event將傳輸的數據進行封裝,是flume傳輸數據的基本單位,若是是文本文件,一般是一行記錄,event也是事務的基本單位。
event從source,流向channel,再到sink,自己爲一個字節數組,並可攜帶headers(頭信息)信息。event表明着一個數據的最小完整單元,從外部數據源來,向外部的目的地去。
爲了方便你們理解,給出一張event的數據流向圖:
這裏寫圖片描述vim

上面這段引用來自大神「安靜的技術控」的文章,由於我以爲大神已經解釋得很到位了。很好理解,在這裏,感謝大神啦數組

工欲善其事,必先利其器bash

由於有的小夥伴可能尚未安裝flume組件,接下來咱們就開始介紹一下flume的安裝。
咱們也能夠去官網看一下,怎麼安裝。架構

System Requirements
Java Runtime Environment - Java 1.8 or later
Memory - Sufficient memory for configurations used by sources, channels or sinks
Disk Space - Sufficient disk space for configurations used by channels or sinks
Directory Permissions - Read/Write permissions for directories used by agent
這段話,簡單解釋:咱們必須得安裝java1.8或者更高版本,內存要足夠(由於咱們的Channel通常是寫在內存上的),磁盤空間要足夠,還有就是對咱們代理中的目錄要有讀寫權限oracle

說明:Flume的安裝是不須要Hadoop集羣的環境的

(一)安裝JDK

  1. 到官網下載jdk1.8,下載地址
    http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
    或者,也可使用我分享的連接地址(64位):
    連接:http://pan.baidu.com/s/1hsvQmB6 密碼:a1gh
  2. 解壓到本身經常使用的目錄,我通常喜歡解壓到~/app/目錄下,這個均可以,按照本身的習慣就好
  3. 配置java的系統環境變量,把咱們解壓出來的東西export導出
[hadoop@hadoop000 app]$ vim ~/.bash_profile 
    #新增導出的java環境,JAVA_HOME後面的值爲本身的解壓目錄
    export JAVA_HOME=/home/hadoop/app/jdk1.8.0_144
    export PATH=$JAVA_HOME/bin:$PATH
    #:wq 保存退出

    [hadoop@hadoop000 app]$ source ~/.bash_profile
    #回車就好,使得剛剛的導出生效
    #驗證配置
    [hadoop@hadoop000 app]$ java -version
    java version "1.8.0_144"
    Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
    Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
    [hadoop@hadoop000 app]$

(二)安裝flume

  1. 下載flume,推薦使用cdh5版本的,地址:
    http://archive.cloudera.com/cdh5/cdh/5/
    這裏須要說明一下,雖然咱們前面說過不須要hadoop集羣環境,可是後面咱們確定是須要結合集羣來實現咱們的業務情景的,因此在選型的時候就得注意,選擇和hadoop集羣一致版本的flume,還有就是沒有使用官網的版本,是由於cdh已經爲咱們解決掉了不少的依賴和衝突,這樣使用起來會更加方便。不會讓咱們的開發在困擾在解決不必的東西上
  2. 一樣,下載本身合適的版本以後,就是開始解壓到指定目錄,而後導出咱們的解壓目錄,再source。若是你多操做幾回,就會發現,這個操做是大數據裏面安裝各類組件的一致操做。
[hadoop@hadoop000 app]$ vim ~/.bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

export JAVA_HOME=/home/hadoop/app/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH

export FLUME_HOME=/home/hadoop/app/flume
export PATH=$FLUME_HOME/bin:$PATH

#:wq 保存退出

3.來到flume下的conf文件目錄下:

[hadoop@hadoop000 conf]$ cp flume-env.sh.template flume-env.sh
[hadoop@hadoop000 conf]$ 
[hadoop@hadoop000 conf]$ vim flume-env.sh
#修改這裏默認的JAVA_HOME爲本身的java目錄
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_144
#:wq保存退出

4.測試是否安裝成功

[hadoop@hadoop000 conf]$ flume-ng version
Flume 1.6.0-cdh5.7.0
Source code repository: https://git-wip-us.apache.org/repos/asf/flume.git
Revision: 8f5f5143ae30802fe79f9ab96f893e6c54a105d1
Compiled by jenkins on Wed Mar 23 11:38:48 PDT 2016
From source with checksum 50b533f0ffc32db9246405ac4431872e
[hadoop@hadoop000 conf]$

到這裏咱們的環境就搭建成功了,接下來,咱們就能夠開始咱們的Flume之旅啦.... 推薦Flume系列二之案例實戰 http://blog.csdn.net/liuge36/article/details/78591367

相關文章
相關標籤/搜索