Flume安裝

 什麼是Flume?

  Apache Flume是一個分佈式、可靠、高可用的海量日誌聚合系統,支持在系統中定製各類數據源發送給指定的數據接收方;同時Flume還提供簡單的數據處理的方法。html

 Flume的三大組成

  (1)source

    完成數據的收集,分紅 transtion和 event將數據傳送到Channel;數據庫

    Flume提供了豐富的數據收集方法的實現,如: AvroSource、Exce Source、Spooling Directory Source、NetCat Source、Syslog Source、Syslog TCP Source、Syslog UDP Source、HTTP Source、HDFS Source等等;apache

    如: Exce Source:以運行Linux命令的方式,持續的輸出最新的數據,如tail -f文件名指令,在這種方式下,取出的文件名必須是指定的;緩存

       Spool Source:是監控配置目錄下新增的文件,並將文件中的內容讀取出來服務器

  (2)Sink

    Sink的做用是取出Channel中的數據,推送到相應的文件或數據存儲系統(如Kafka、Hadoop的HDFS)、數據庫、或者提交到遠程服務器;分佈式

    Flume Sink也提供了各類sink的實現,包括HDFS sink、Logger sink、Avro sink、File Roll sink、Null sink、HBase sink等等;oop

    Flume Sink在設置存儲數據時,能夠向文件系統、數據庫、Hadoop中存儲數據,在日誌數據較小時,能夠將數據存儲在文件中,而且設定必定的時間間隔保存數據。在日誌數據較多時,能夠將相應的日誌數據存儲到Hadoop中,便於往後對數據進行分析。測試

  (3)Channel

     Flume Channel主要提供一個隊列的能力,對Source中的數據進行簡單的緩存;spa

     Flume對Channel則提供了Memory Channel、JDBC Channel、File Channel;代理

     Memory Channel:能夠實現高吞吐量,可是沒法保證數據的完整行;

     File Channel:保證數據的完整性和一致性。在具體配置FileChannel時,建議FileChannel設置的目錄和程序日誌文件保存的目錄在不一樣磁盤,從而提升效率。

  Flume的安裝

  (1)確保系統已經安裝了JDK1.7+,而且配置了Java的環境變量;

  (2)下載二進制安裝包,地址:http://flume.apache.org/download.html

  (3)建立Flume用戶,上傳Flume到用戶目錄,解壓,重命名;

  (4)複製flume-env.sh.template到flume-env.sh,複製flume-conf.properties.template到flume-conf.properties

   Flume數據收集測試

  利用netcat,發送數據,測試flume是否能收到數據:

  Flume的配置以下:

agent.sources = r1
agent.channels = memoryChannel
agent.sinks = k1

# For each one of the sources, the type is defined
agent.sources.r1.type = netcat
agent.sources.r1.bind = localhost
agent.sources.r1.port = 8888
agent.sources.r1.channels = memoryChannel

# Each sink's type must be defined
agent.sinks.k1.type = logger                 #sink的type是logger,收集的數據會進行日誌打印
agent.sinks.k1.channel = memoryChannel # Each channel's type is defined. agent.channels.memoryChannel.type = memory agent.channels.memoryChannel.capacity = 100 agent.channels.transactionCapacity = 100

  從配置文件能夠看出,此處的flume代理的名字是agent,採集的數據類型是 localhost 的netcat,端口是8888,數據存儲類型是內存存儲。

  啓動flume:

flume-ng agent -n agent -c conf -f /home/flume/flume/conf/flume-conf.properties -Dflume.root.logger=INFO,console

  命令參數說明:

  -n: 是-name的縮寫,是指代理的名稱,在上面的flume中,咱們的代理名稱是agent;

  -c: 是-conf的縮寫,是指配置文件flume-conf.properties所在的目錄;

  -f: 是-file的縮寫,是指配置文件flume-conf.properties的路徑;

  -Dflume.root.logger=INFO,console 設置日誌等級

  同時利用netcat發送信息,咱們看flume 的輸出信息:

 

  咱們能夠看到Flume成功收集到咱們nc發送的信息。

相關文章
相關標籤/搜索