溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Flume入門知識(shí)點(diǎn)有哪些

發(fā)布時(shí)間:2021-12-16 10:46:01 來(lái)源:億速云 閱讀:123 作者:小新 欄目:云計(jì)算

這篇文章將為大家詳細(xì)講解有關(guān)Flume入門知識(shí)點(diǎn)有哪些,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

1、Flume是什么?


    ○ Flume是由cloudera開發(fā)的實(shí)時(shí)日志收集系統(tǒng)
    ○ 核心概念是由一個(gè)叫做Agent(代理節(jié)點(diǎn))的java進(jìn)程運(yùn)行在日志收集節(jié)點(diǎn)
    ○ Flume在0.94.0版本以前(包含0.94.0版本)稱為Cloudera Flume OG,由于0.94.0版本以前存在各種缺陷,因此不得不重新設(shè)計(jì)Flume并更名為Apache Flume NG(1.0.0開始)
    ○ Flume NG VS Flume OG
      - 目前版本都是Flume NG(1.0.0版本之后)
      架構(gòu)方面:
        □ Flume OG有三種角色的節(jié)點(diǎn):代理節(jié)點(diǎn)agent、收集節(jié)點(diǎn)collector、主節(jié)點(diǎn)master
        □ agent負(fù)責(zé)從各個(gè)數(shù)據(jù)源收集日志數(shù)據(jù)、將收集到的數(shù)據(jù)集中到collector,再由collector節(jié)點(diǎn)匯總存入到HDFS.而master負(fù)責(zé)管理agent\collector的活動(dòng)
        □ agent、collector都稱為node,node的角色根據(jù)配置的不同分為邏輯節(jié)點(diǎn)和物理節(jié)點(diǎn),對(duì)于邏輯節(jié)點(diǎn)的區(qū)分、配置、使用非常復(fù)雜.
        □ agent、collector由source、sink組成,表示當(dāng)前節(jié)點(diǎn)的數(shù)據(jù)從source傳送到sink


          以上相對(duì)于Flume NG來(lái)說:


        □ Flume NG只有一種角色節(jié)點(diǎn):代理節(jié)點(diǎn)agent
        □ 沒有collector、master節(jié)點(diǎn),這是最核心的變化.
        □ 去除邏輯節(jié)點(diǎn)和物理節(jié)點(diǎn)的概念和內(nèi)容
        □ agent節(jié)點(diǎn)的組成發(fā)生變化,由source 、sink、channel三個(gè)組件組成
      Zookeeper方面:
        □ Flume OG的穩(wěn)定性依賴zookeeper,它需要zookeeper對(duì)其多類節(jié)點(diǎn)的工作進(jìn)行管理,雖然OG可以使用內(nèi)存的方式對(duì)各類節(jié)點(diǎn)進(jìn)行管理,但需要用戶忍受機(jī)器出現(xiàn)故障時(shí)信息丟失的出現(xiàn).
        □ Flume NG的節(jié)點(diǎn)角色數(shù)量由原來(lái)的3個(gè)縮減為1個(gè),不存在多類角色的問題,所以不再需要zookeeper對(duì)各類節(jié)點(diǎn)協(xié)調(diào)的作用,由此脫離了對(duì)zookeeper的依賴.


2、Flume的三個(gè)組件


    一個(gè)Agent進(jìn)程包含了三個(gè)組件:Source組件、Channel組件、Sink組件,Source組件負(fù)責(zé)收集日志文件并發(fā)送給Channel組件,Channel組件形成一個(gè)管道,再由Sink組件讀取Channel組件中的日志文件并發(fā)送給其他目標(biāo)或者文件系統(tǒng)

Flume入門知識(shí)點(diǎn)有哪些  

    Source組件:專門收集日志文件,可以處理各種類型的日志數(shù)據(jù),如:Avro、Thrift、Exec、JMS、Spooling Directory、Twitter、Kafka、NetCat、Sequence Generator、Syslog、HTTP、Stress、Legacy、Custom(自定義格式)、Scribe
    Channel組件:專門用于存放臨時(shí)文件,存儲(chǔ)的位置可以是Memory、JDBC、Kafka、File、Spillable Memory、Pseudo Transaction、Custom(自定義)
    Sink組件:專門用于發(fā)送存放在Channel組件中的數(shù)據(jù),發(fā)送的目標(biāo)包括:HDFS、Hive、Logger、Thrift、IRC、File Roll、Null、HBase、MorphlineSolr、ElasticSearch、Kite Dataset、Kafka、Custom(自定義)
    Note:
  ○ 具體各種使用請(qǐng)參官方文檔:http://flume.apache.org/FlumeUserGuide.html#flume-sink-processors
  ○ Channel中的數(shù)據(jù)只有在Sink組件發(fā)送成功后才會(huì)被刪除
  ○ 在整個(gè)數(shù)據(jù)的傳輸過程中流動(dòng)的是event,event可以理解為是flume中數(shù)據(jù)傳輸?shù)幕締挝?event表現(xiàn)為一條條的數(shù)據(jù),其事務(wù)保證是event級(jí)別.
  ○ flume支持多級(jí)flume的agent,支持扇入(fan-in)\扇出(fan-out)


Flume入門知識(shí)點(diǎn)有哪些

Note:

    ○ Sink支持發(fā)送多個(gè)目標(biāo)


3、Flume的安裝與配置


 ○ 下載
    apache-flume-1.6.0-bin.tar.gz
    JDK版本:1.6+
 ○ 解壓FLUME_HOME

tar -zxvf apache-flume-1.6.0-bin.tar.gz

 ○ 安裝JDK、配置JAVA_HOME、FLUME_HOME.

vi /etc/profile
export FLUME_HOME=/home/app/flume
export PATH=.:$FLUME_HOME/bin

 ○ 一個(gè)簡(jiǎn)單的例子,監(jiān)控/home/data/logs目錄,一旦有發(fā)現(xiàn)文件立即上傳到hdfs中
  □ 首先編寫一個(gè)配置文件,文件名為:example.conf

#agent1表示代理名稱
  agent1.sources=source1
  agent1.sinks=sink1
  agent1.channels=channel1  #Spooling Directory是監(jiān)控指定文件夾中新文件的變化,一旦新文件出現(xiàn),就解析該文件內(nèi)容,然后寫入到channle。寫入完成后,標(biāo)記該文件已完成或者刪除該文件。
  #配置source1
  agent1.sources.source1.type=spooldir
  #指定監(jiān)控的目錄
  agent1.sources.source1.spoolDir=/home/data/logs
  agent1.sources.source1.channels=channel1
  agent1.sources.source1.fileHeader = false
  agent1.sources.source1.interceptors = i1
  agent1.sources.source1.interceptors.i1.type = timestamp
  #配置sink1
  agent1.sinks.sink1.type=hdfs
  agent1.sinks.sink1.hdfs.path=hdfs://master:9000/flume/data
  agent1.sinks.sink1.hdfs.fileType=DataStream
  agent1.sinks.sink1.hdfs.writeFormat=TEXT
  agent1.sinks.sink1.hdfs.rollInterval=1
  agent1.sinks.sink1.channel=channel1
  agent1.sinks.sink1.hdfs.filePrefix=%Y-%m-%d
  #配置channel1
  agent1.channels.channel1.type=file
  #channel數(shù)據(jù)存放的備份目錄
  agent1.channels.channel1.checkpointDir=/home/data/channel_data.backup
  #channel數(shù)據(jù)存放目錄
  agent1.channels.channel1.dataDirs=/home/data/channel_data

  □ 將example.conf文件放到$FLUME_HOME/conf文件夾下
  □ 啟動(dòng)agent進(jìn)程命令:需要指定agent的名字、指定配置目錄和配置文件
    官方格式:

bin/flume-ng agent -n $agent_name -c conf -f conf/flume-conf.properties.template

在例子中編寫成如下↓↓

 bin/flume-ng agent -n agent1 -c conf -f conf/example.conf -Dflume.root.logger=DEBUG,console
 -Dflume.root.logger=DEBUG,console是在控制臺(tái)打印信息

  □ 重新打開一個(gè)終端,上傳一個(gè)文件到/home/data/logs
  □ /home/data/logs中的文件被更名為.COMPLETED,查看HDFS文件存在,配置完畢

關(guān)于“Flume入門知識(shí)點(diǎn)有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI