Flume簡介與使用(一)——Flume安裝與配置


Flume簡介與使用(一)——Flume安裝與配置

Flume簡介

  Flume是一個分布式的、可靠的、實用的服務——從不同的數據源高效的采集、整合、移動海量數據。

  

  分布式:可以多台機器同時運行采集數據,不同Agent的之前通過網絡傳輸數據

  可靠的:Flume會將采集的數據緩存在Channel里,當Sink確認數據被接收了后才會從Channel里刪除

  實用的:Flume的使用是非常簡單可用的,易於擴展,只需要修改配置文件的選項,就可以定制不同的Source、Channel、Sink,這得益於其精妙的設計

  Agent是Flume的一個JVM進程,其中包含Source、Channel、Sink三個組件,要采集的數據經過定制化的Source緩存到Channel,Channel是一個隊列,Source向里面插入數據,Sink從里面取數據,當Sink確認數據被下一跳Agent或者DB等接收后會將數據從Channel刪除。

  Flume最巧妙的地方就是其模塊化的設計。在實際的應用中要采集的數據可能會來自同的數據源,可以是命令的屏幕輸出、應用程序的日志、網絡流量等等,用戶可以定制不同的Source來分別采集。同樣也可以根據不同需求定制自己的Channel和Sink。下表是Flume1.6.0支持的部分組件類型

Source類型  說明
Avro Source 支持Avro協議(實際上是Avro RPC),內置支持
Thrift Source 支持Thrift協議,內置支持
Exec Source 基於Unix的command在標准輸出上生產數據
JMS Source 從JMS系統(消息、主題)中讀取數據,ActiveMQ已經測試過
Spooling Directory Source 監控指定目錄內數據變更
Twitter 1% firehose Source 通過API持續下載Twitter數據,試驗性質
Netcat Source 監控某個端口,將流經端口的每一個文本行數據作為Event輸入
Sequence Generator Source 序列生成器數據源,生產序列數據
Syslog Sources 讀取syslog數據,產生Event,支持UDP和TCP兩種協議
HTTP Source 基於HTTP POST或GET方式的數據源,支持JSON、BLOB表示形式
Legacy Sources 兼容老的Flume OG中Source(0.9.x版本)

 

 

Channel類型  說明
Memory Channel Event數據存儲在內存中
JDBC Channel Event數據存儲在持久化存儲中,當前Flume Channel內置支持Derby
File Channel Event數據存儲在磁盤文件中
Spillable Memory Channel Event數據存儲在內存中和磁盤上,當內存隊列滿了,會持久化到磁盤文件(當前試驗性的,不建議生產環境使用)
Pseudo Transaction Channel 測試用途
Custom Channel 自定義Channel實現

 

 

Sink類型  說明
Kafka Sink 把數據寫入Kafka topic
Hive Sink 把數據寫入Hive數據庫或分區
HDFS Sink 數據寫入HDFS
Logger Sink 數據寫入日志文件
Avro Sink 數據被轉換成Avro Event,然后發送到配置的RPC端口上
Thrift Sink 數據被轉換成Thrift Event,然后發送到配置的RPC端口上
IRC Sink 數據在IRC上進行回放
File Roll Sink 存儲數據到本地文件系統
Null Sink 丟棄到所有數據
HBase Sink 數據寫入HBase數據庫
Morphline Solr Sink 數據發送到Solr搜索服務器(集群)
ElasticSearch Sink 數據發送到Elastic Search搜索服務器(集群)
Kite Dataset Sink 寫數據到Kite Dataset,試驗性質的
Custom Sink 自定義Sink實現

 


 

Flume安裝

  這篇先介紹如何安裝Flume,以及如何設置配置文件,后面再介紹如何使用Thrift Source采集日志。

  一、Flume1.6.0版本求JVM1.6及以上版本,安裝好JDK(自帶JVM)后,去Flume官網下載二進制格式的壓縮包並解壓。

  二、進入conf目錄下:cp flume-conf.properties.template myFlumeConf.properties

  三、根據自己需要修改里面的配置,官網上有很多配置的定義     

    配置好的屬性文件跟下面的類似:

  四、啟動Flume

  在Flume目錄下運行:

  bin/flume-ng agent --conf conf --conf-file conf/trafficXXX.properties --name agent1 -Dflume.root.logger=INFO,console

  其中--conf指定配置文件路徑,--conf-file指定配置文件,--name指定配置文件里的要啟動agent名字(一個配置文件里可以有多個agent的定義),-Dflume.root.logger指定Flume運行時輸出的日志的級別和地方。

 


轉載請注明原文出處,http://www.cnblogs.com/vincent-vg/p/5809626.html,謝謝

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM