大數據生態圈之 Flume(一)

一、Flume 概述

       Flume是一種分佈式的、可靠的和可用的服務,用於有效地收集、聚合和移動大量日誌數據。它具有簡單靈活的基於流數據流的體系結構。它具有健壯性和容錯性,具有可調可靠性機制和多種故障轉移和恢復機制。它使用了一個簡單的可擴展數據模型,允許在線分析應用程序。

二、Flume 架構和核心組件        

        1、Source(收集):Source負責我們從什麼地方去採集數據,支持的形式有Avro Source、Thrift Source、Kafka Source、Spooling Source、Exec Source、也可根據具體需求自定義Source。

        2、Channel(聚集):常用的形式有Memory Channel、File Channel、Kafka Channel。

        3、Sink(輸出):常用的形式有HDFS Sink、Hive Sink、Avro Sink、Hbase Sink(同步、異步)、Kafka Sink。

常用架構一:

 將多個agent收集到的數據統一放到一個agent上去處理。

常用架構二:(設置多個agent的flow)

 左側agent通過Source收集數據,採用Avro Sink將數據寫出;右側Agent通過avro Source將數據收集,通過Sink將數據導出。

常用架構三:(將一個agent裏的數據sink到不同目的地)

三、同類產品對比

       Flume:Cloudera/Apache開發維護的,底層採用的是Java。

       Scribe:Facebook開發維護的,C/C++,目前已經不再維護。

       Chukwa:Yahoo/Apache開發維護的,底層採用Java,目前已經不再維護。

       Fluentd:Ruby開發維護的,和Flume差不多日誌收集器。

       Logstash:ELK(ElasticSearch,Kibana),目前也比較火熱。

四、Flume發展史

       Flume最開始是由Cloudera提出的,第一個版本爲0.9.2,當時叫做 Flume-OG。然後在2011年有一個重大的歷史變更,將Flume-OG更新爲Flume-NG,並且貢獻給Apache(Flume-728)。在2012年7月份的時候,誕生了1.0版本;2015.5誕生了1.6版本,目前最新是1.7版本。(建議使用1.0+的版本)

五、Flume&JDK環境部署

Flume安裝前置條件:

       1、Java運行環境必須是1.7或1.7+的版本。

       2、被source、channels、sink使用的內存要足夠。

       3、機器的磁盤空間要足夠,用來存放數據。

       4、目錄的使用權限,相對應的目錄必須要有讀寫權限。

安裝步驟:

       1、安裝JDK,並配置環境變量。

       2、下載Flume並解壓(去cdh找到對應的版本,wget下載就行)

       3、配置一下Flume的環境變量,安裝完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章