大數(shù)據(jù)技術(shù)原理與操作應(yīng)用 第8章 Flume日志采集系統(tǒng)_第1頁(yè)
大數(shù)據(jù)技術(shù)原理與操作應(yīng)用 第8章 Flume日志采集系統(tǒng)_第2頁(yè)
大數(shù)據(jù)技術(shù)原理與操作應(yīng)用 第8章 Flume日志采集系統(tǒng)_第3頁(yè)
大數(shù)據(jù)技術(shù)原理與操作應(yīng)用 第8章 Flume日志采集系統(tǒng)_第4頁(yè)
大數(shù)據(jù)技術(shù)原理與操作應(yīng)用 第8章 Flume日志采集系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第8章Flume日志采集系統(tǒng)·Flume的可靠性保證·Flume攔截器·案例——日志采集·Flume概述·Flume的基本使用

·Flume采集方案配置說(shuō)明

?學(xué)習(xí)目標(biāo)熟悉熟悉了解Flume的概念與作用12熟悉Flume的運(yùn)行機(jī)制和可靠性保證掌握Flume的基本使用方法和安裝部署3了解熟悉熟悉掌握4熟悉案例——日志采集的編寫本章將針對(duì)Flume系統(tǒng)的基本概念、安裝及應(yīng)用方式詳細(xì)講解,讓讀者掌握Flume系統(tǒng)的原理與應(yīng)用。章節(jié)概要在大數(shù)據(jù)系統(tǒng)的開發(fā)中,數(shù)據(jù)收集工作無(wú)疑是開發(fā)者首要解決的一個(gè)難題,但由于生產(chǎn)數(shù)據(jù)的源頭豐富多樣,其中包含網(wǎng)站日志數(shù)據(jù)、后臺(tái)監(jiān)控?cái)?shù)據(jù)、用戶瀏覽網(wǎng)頁(yè)數(shù)據(jù)等,數(shù)據(jù)工程師要想將它們分門別類的采集到HDFS系統(tǒng)中,就可以使用ApacheFlume(數(shù)據(jù)采集)系統(tǒng)。

8.1Flume介紹Flume概述

Flume原是Cloudera公司提供的一個(gè)高可用的、高可靠的、分布式海量日志采集、聚合和傳輸系統(tǒng),而后納入到了Apache旗下,作為一個(gè)頂級(jí)開源項(xiàng)目。ApacheFlume不僅只限于日志數(shù)據(jù)的采集,由于Flume采集的數(shù)據(jù)源是可定制的,因此Flume還可用于傳輸大量事件數(shù)據(jù),包括但不限于網(wǎng)絡(luò)流量數(shù)據(jù)、社交媒體生成的數(shù)據(jù)、電子郵件消息以及幾乎任何可能的數(shù)據(jù)源。

8.1Flume介紹Flume運(yùn)行機(jī)制Flume的核心是把數(shù)據(jù)從數(shù)據(jù)源(例如Web服務(wù)器)通過(guò)數(shù)據(jù)采集器(Source)收集過(guò)來(lái),再將收集的數(shù)據(jù)通過(guò)緩沖通道(Channel)匯集到指定的接收器(Sink)。

Flume以Agent為最小的獨(dú)立運(yùn)行單位。一個(gè)Agent就是一個(gè)JVM。單Agent由Source、Sink和Channel三大組件構(gòu)成,

8.1Flume介紹FlumeSources在編寫Flume采集方案時(shí),首先必須明確采集的數(shù)據(jù)源類型、出處;接著,根據(jù)這些信息與Flume已提供支持的FlumeSources進(jìn)行匹配,選擇對(duì)應(yīng)的數(shù)據(jù)采集器類型(即sources.type);再根據(jù)選擇的數(shù)據(jù)采集器類型,配置必要和非必要的數(shù)據(jù)采集器屬性,F(xiàn)lume提供并支持的FlumeSources種類如下所示。AvroSourceThriftSourceExecSourceJMSSourceSpoolingDirectorySourceTwitter1%firehoseSourceKafkaSourceNetCatTCPSourceNetCatUDPSourceSequenceGeneratorSourceSyslogTCPSourceMultiportSyslogTCPSourceSyslogUDPSourceHTTPSourceStressSourceAvroLegacySourceThriftLegacySourceCustomSourceScribeSourceTaildirSource

8.1Flume介紹FlumeSources

監(jiān)聽Avro端口并從外部Avro客戶端流中接收event數(shù)據(jù),當(dāng)與另一個(gè)FlumeAgent上的AvroSink配對(duì)時(shí),可創(chuàng)建分層集合拓?fù)洌肁vroSource可以實(shí)現(xiàn)多級(jí)流動(dòng)、扇出流、扇入流等效果,AvroSource常用配置屬性如下。屬性名稱默認(rèn)值相關(guān)說(shuō)明channels–

type–組件類型名需必須是avrobind–要監(jiān)聽的主機(jī)名或IP地址port–要監(jiān)聽的服務(wù)端口threads–要生成的工作線程的最大數(shù)目sslfalse將此設(shè)置為true以啟用SSL加密,則還必須指定“keystore”和“keystore-password”keystore–SSL所必需的通往Java秘鑰存儲(chǔ)路徑keystore-password–SSL所必需的Java密鑰存儲(chǔ)的密碼

8.1Flume介紹FlumeSourcesSpoolingDirectorySource允許對(duì)指定磁盤上的文件目錄進(jìn)行監(jiān)控來(lái)提取數(shù)據(jù),它將查看文件的指定目錄的新增文件,并將文件中的數(shù)據(jù)讀取出來(lái)。SpoolingDirectorySource常用配置屬性如下表所示。屬性名稱默認(rèn)值相關(guān)說(shuō)明channels–

type–組件類型名需必須是spooldirspoolDir–從中讀取文件的目錄fileSuffix.COMPLETED附加到完全攝取的文件后綴deletePolicynever何時(shí)刪除已完成的文件:never或immediatefileHeaderfalse是否添加存儲(chǔ)絕對(duì)路徑文件名的標(biāo)頭includePattern^.*$正則表達(dá)式,指定要包含的文件ignorePattern^$正則表達(dá)式指定要忽略的文件

8.1Flume介紹FlumeSources

Taildir

Source用于觀察指定的文件,幾乎可以實(shí)時(shí)監(jiān)測(cè)到添加到每個(gè)文件的新行。如果文件正在寫入新行,則此采集器將重試采集它們以等待寫入完成,Source常用配置屬性如下所示。屬性名稱默認(rèn)值相關(guān)說(shuō)明channels–

type–組件類型名需必須是TAILDIRfilegroups–以空格分隔的文件組列表filegroups.<filegroupName>–文件組的絕對(duì)路徑idleTimeout120000關(guān)閉非活動(dòng)文件的時(shí)間(毫秒)

8.1Flume介紹FlumeSources續(xù)表屬性名稱默認(rèn)值相關(guān)說(shuō)明writePosInterval3000寫入位置文件上每個(gè)文件的最后位置的間隔時(shí)間batchSize100一次讀取和發(fā)送到通道的最大行數(shù)backoffSleepIncrement1000當(dāng)最后一次嘗試未找到任何新數(shù)據(jù)時(shí),每次重新嘗試輪詢新數(shù)據(jù)之間的最大時(shí)間延遲fileHeaderfalse是否添加存儲(chǔ)絕對(duì)路徑文件名的標(biāo)頭fileHeaderKeyfile將絕對(duì)路徑文件名附加到eventheader時(shí)使用的header關(guān)鍵字

8.1Flume介紹FlumeSources續(xù)表屬性名稱默認(rèn)值相關(guān)說(shuō)明channels–

type

組件類型名需必須是httpport–采集源要綁定的端口bind要監(jiān)聽綁定的主機(jī)名或IP地址handlerorg.apache.flume.source.http.JSONHandlerhandler類的全路徑名

8.1Flume介紹FlumeSources

HTTPSource可以通過(guò)HTTPPOST和GET請(qǐng)求方式接收event數(shù)據(jù),GET通常只能用于測(cè)試使用,POST請(qǐng)求發(fā)送的所有的events都被認(rèn)為是一個(gè)批次,會(huì)在一個(gè)事務(wù)中插入channel,TaildirSource常用配置屬性如下所示。屬性名稱默認(rèn)值相關(guān)說(shuō)明channels–

type

組件類型名需必須是httpport–采集源要綁定的端口bind要監(jiān)聽綁定的主機(jī)名或IP地址handlerorg.apache.flume.source.http.JSONHandlerhandler類的全路徑名

8.1Flume介紹FlumeChannels

Channels通道是event在Agent上暫存的存儲(chǔ)庫(kù),Source向Channel中添加event,Sink在讀取完數(shù)據(jù)后再刪除它。在配置Channels時(shí),需要明確的就是將要傳輸?shù)膕ources數(shù)據(jù)源類型;根據(jù)這些信息結(jié)合開發(fā)中的實(shí)際需求,選擇Flume已提供的支持的FlumeChannels;再根據(jù)選擇的Channel類型,配置必要和非必要的Channel屬性,F(xiàn)lume提供并支持的FlumeChannels種類如下所示。MemoryChannelJDBCChannelKafkaChannelFileChannelSpillableMemoryChannelPseudoTransactionChannelCustomChannel

8.1Flume介紹FlumeChannels

MemoryChannel會(huì)將event存儲(chǔ)在具有可配置最大尺寸的內(nèi)存隊(duì)列中,適用于需要更高吞吐量的流量,但在Agent發(fā)生故障時(shí)會(huì)丟失部分階段數(shù)據(jù),下表為MemoryChannel常用配置屬性。屬性名稱默認(rèn)值相關(guān)說(shuō)明type–組件類型名需必須是memorycapacity100存儲(chǔ)在channel中的最大event數(shù)transactionCapacity100channel從source接收或向sink傳遞的每個(gè)事務(wù)中最大event數(shù)keep-alive3添加或刪除event的超時(shí)時(shí)間(秒)byteCapacityBufferPercentage20定義byteCapacity與channel中所有event所占百分比byteCapacity等于JVM可用的最大內(nèi)存的80%允許此channel中所有event的的最大內(nèi)存字節(jié)數(shù)總和

8.1Flume介紹FlumeChannelsFileChannel是Flume的持久通道,它將所有event寫入磁盤,因此不會(huì)丟失進(jìn)程或機(jī)器關(guān)機(jī)、崩潰時(shí)的數(shù)據(jù)。FileChannel通過(guò)在一次事務(wù)中提交多個(gè)event來(lái)提高吞吐量,做到了只要事務(wù)被提交,那么數(shù)據(jù)就不會(huì)有丟失,F(xiàn)ileChannel常用配置屬性如下所示。屬性名稱默認(rèn)值相關(guān)說(shuō)明type–組件類型名需必須是filecheckpointDir1~/.flume/file-channel/checkpoint檢測(cè)點(diǎn)文件所存儲(chǔ)的目錄useDualCheckpointsfalse備份檢測(cè)點(diǎn)如果設(shè)置為true,backupCheckpointDir必須設(shè)置backupCheckpointDir–備份檢查點(diǎn)目錄。此目錄不能與數(shù)據(jù)目錄或檢查點(diǎn)目錄相同dataDirs~/.flume/file-channel/data數(shù)據(jù)存儲(chǔ)所在的目錄設(shè)置

8.1Flume介紹FlumeChannels屬性名稱默認(rèn)值相關(guān)說(shuō)明transactionCapacity10000事務(wù)容量的最大值設(shè)置checkpointInterval30000檢測(cè)點(diǎn)之間的時(shí)間值設(shè)置(單位微秒)maxFileSize2146435071一個(gè)單一日志的最大值設(shè)置(以字節(jié)為單位)capacity1000000channel的最大容量transactionCapacity10000事務(wù)容量的最大值設(shè)置續(xù)表

8.1Flume介紹FlumeSinksFlumeSoures采集的數(shù)據(jù)通過(guò)Channels通道流向Sink中,此時(shí)Sink類似一個(gè)集結(jié)的遞進(jìn)中心,它需要根據(jù)需求進(jìn)行配置,從而最終選擇發(fā)送目的地。配置Sinks時(shí),明確將要傳輸?shù)臄?shù)據(jù)目的地、結(jié)果類型;然后根據(jù)實(shí)際需求信息,選擇Flume已提供支持的FlumeSinks;再根據(jù)選擇的Sinks類型,配置必要和非必要的Sinks屬性。Flume提供并支持的FlumeSinks種類如下所示。HDFSSinkHiveSinkLoggerSinkAvroSinkThriftSinkIRCSinkFileRollSinkNullSinkHBaseSinkAsyncHBaseSinkMorphlineSolrSinkElasticSearchSinkKiteDatasetSinkKafkaSinkHTTPSinkCustomSink

8.1Flume介紹FlumeSinks

HDFSSink將event寫入Hadoop分布式文件系統(tǒng)(HDFS),它目前支持創(chuàng)建文本和序列文件,以及兩種類型的壓縮文件,下表為HDFSSink常用配置屬性。屬性名稱默認(rèn)值相關(guān)說(shuō)明channel–

type–組件類型名需必須是hdfshdfs.path–HDFS目錄路徑hdfs.filePrefixFlumeData為在hdfs目錄中由Flume創(chuàng)建的文件指定前綴hdfs.roundfalse是否應(yīng)將時(shí)間戳向下舍入

8.1Flume介紹FlumeSinks屬性名稱默認(rèn)值相關(guān)說(shuō)明hdfs.roundValue1舍入到此最高倍數(shù),小于當(dāng)前時(shí)間hdfs.roundUnitsecond舍入值的單位-秒、分鐘或小時(shí)hdfs.rollInterval30滾動(dòng)當(dāng)前文件之前等待的秒數(shù)hdfs.rollSize1024觸發(fā)滾動(dòng)的文件大小,以字節(jié)為單位hdfs.rollCount10在滾動(dòng)之前寫入文件的事件數(shù)續(xù)表

8.1Flume介紹FlumeSinks

LoggerSink用于記錄INFO級(jí)別event,它通常用于調(diào)試。LoggerSink接收器的不同之處是它不需要在“記錄原始數(shù)據(jù)”部分中說(shuō)明額外的配置,LoggerSink常用配置屬性如下所示。屬性名稱默認(rèn)值相關(guān)說(shuō)明channel–

type–組件類型名需必須是loggermaxBytesToLog16要記錄的eventbody的最大字節(jié)數(shù)

8.1Flume介紹FlumeSinks

屬性名稱默認(rèn)值相關(guān)說(shuō)明channel–

type–組件類型名需必須是avrohostname–要監(jiān)聽的主機(jī)名或IP地址port–要監(jiān)聽的服務(wù)端口batch-size100要一起批量發(fā)送的event數(shù)connect-timeout20000允許第一次(握手)請(qǐng)求的時(shí)間量(ms)request-timeout20000在第一個(gè)之后允許請(qǐng)求的時(shí)間量(ms)AvroSink形成Flume分層收集支持的一半,發(fā)送到此接收器的Flumeevent轉(zhuǎn)換為Avroevent,并發(fā)送到對(duì)應(yīng)配置的主機(jī)名/端口,event將從配置的channel中批量獲取配置的批處理大小,AvroSink常用配置屬性如下所示。

8.1Flume介紹Flume日志采集系統(tǒng)結(jié)構(gòu)圖

在實(shí)際開發(fā)中,F(xiàn)lume需要采集數(shù)據(jù)的類型多種多樣,同時(shí)還會(huì)進(jìn)行不同的中間操作,所以根據(jù)具體需求,可以將Flume日志采集系統(tǒng)分為單代理和多代理結(jié)構(gòu)。

8.1Flume介紹Flume日志采集系統(tǒng)結(jié)構(gòu)圖單代理Flume日志采集系統(tǒng)的結(jié)構(gòu)

8.1Flume介紹Flume日志采集系統(tǒng)結(jié)構(gòu)圖多代理的Flume日志采集系統(tǒng)的結(jié)構(gòu)

8.2Flume基本使用方法Flume系統(tǒng)要求

使用Flume進(jìn)行開發(fā),必須滿足一定的系統(tǒng)要求,這里以官方說(shuō)明為準(zhǔn),具體要求如下。安裝Java1.8或更高版本Java運(yùn)行環(huán)境;為Source(數(shù)據(jù)采集器)、Channel(緩沖通道)、Sink(接收器)的配置提供足夠的內(nèi)存空間;為Channel(緩沖通道)、Sink(接收器)的配置提供足夠的磁盤空間;保證Agent(代理)對(duì)要操作的目錄有讀寫權(quán)限.。

8.2Flume基本使用Flume安裝配置1下載Flume1.8.0安裝包并解壓。2配置flume-env.sh文件,添加JDK環(huán)境變量。3配置/etc/profile文件,添加Flume環(huán)境變量。

8.3采集方案配置說(shuō)明

使用Flume系統(tǒng),只需要?jiǎng)?chuàng)建一個(gè)配置文件,用來(lái)配置FlumeSource、FlumeChannel和FlumeSink三大組件的屬性即可。

8.3采集方案配置說(shuō)明Flume

sources(1)AvrosourcesAvro是一個(gè)數(shù)據(jù)序列化的系統(tǒng),flume通過(guò)監(jiān)聽Avro端口,從外部Avroclient獲取events,配置文件格式如下:a1.sources=r1a1.channels=c1a1.sources.r1.type=avroa1.sources.r1.channels=c1a1.sources.r1.bind=a1.sources.r1.port=4141(2)Execsources此源啟動(dòng)運(yùn)行一個(gè)給定的Unix命令,預(yù)計(jì)這一過(guò)程中不斷產(chǎn)生標(biāo)準(zhǔn)輸出的數(shù)據(jù)。配置文件格式如下:exec-agent.sources=tailexec-agent.channels=memoryChannel-1exec-agent.sinks=loggerexec-agent.sources.tail.type=execmand=tail-f/var/log/secure

8.3采集方案配置說(shuō)明Flumesources(3)Netcatsources一個(gè)netcat在某一端口上偵聽,每一行文字變成一個(gè)事件源。行為像“nc-k-l[主機(jī)][端口]”。換句話說(shuō),它打開一個(gè)指定端口,偵聽數(shù)據(jù)。意料的是,所提供的數(shù)據(jù)是換行符分隔的文本。每一行文字變成Flume事件,并通過(guò)連接通道發(fā)送。(4)SyslogTCPsources

用于監(jiān)控TCP端口信息,可以用來(lái)接收socket通信通過(guò)TCP發(fā)過(guò)來(lái)的信息。(5)SyslogUDPsources用于監(jiān)控UDP端口信息,可以用來(lái)接收socket通信通過(guò)TCP發(fā)過(guò)來(lái)的信息。

8.3采集方案配置說(shuō)明FlumeChannel(1)MemoryChannel

用內(nèi)存空間來(lái)存儲(chǔ)sources收集到的數(shù)據(jù),配置如下:

a1.channels=c1 a1.channels.c1.type=memory a1.channels.c1.capacity=10000 a1.channels.c1.transactionCapacity=10000 a1.channels.c1.byteCapacityBufferPercentage=20 a1.channels.c1.byteCapacity=800000(2)JDBCChannel用數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)sources收集到的數(shù)據(jù),目前支持DERBY數(shù)據(jù)庫(kù)(3)FILEChannel用文件當(dāng)做channel來(lái)存儲(chǔ)中間數(shù)據(jù)

8.3采集方案配置說(shuō)明FlumeSinks(1)HDFSSinks用HDFS來(lái)存儲(chǔ)channel里面的信息,配置如下:

a1.channels=c1 a1.sinks=k1 a1.sinks.k1.type=hdfs a1.sinks.k1.channel=c1 a1.sinks.k1.hdfs.path=/flume/events/%y-%m-%d/%H%M/%S a1.sinks.k1.hdfs.filePrefix=events- a1.sinks.k1.hdfs.round=true a1.sinks.k1.hdfs.roundValue=10 a1.sinks.k1.hdfs.roundUnit=minute

8.3采集方案配置說(shuō)明FlumeSinks(2)LoggerSinks將接收到的信息顯示在控制臺(tái),配置如下:

a1.channels=c1 a1.sinks=k1 a1.sinks.k1.type=logger a1.sinks.k1.channel=c1(3)FileRollSinks將消息存儲(chǔ)在本地文件中,配置說(shuō)明如下:a1.channels=c1a1.sinks=k1a1.sinks.k1.type=file_rolla1.sinks.k1.channel=c1a1.sinks.k1.sink.directory=/var/log/flume#文件存儲(chǔ)的路徑a1.sinks.k1.sink.rollInterval=30#多長(zhǎng)時(shí)間往寫出一次。a1.sinks.k1.sink.serializer=TEXT#寫出格式

8.4Flume的可靠性保證負(fù)載均衡配置的采集方案是通過(guò)唯一一個(gè)Sink作為接收器接收后續(xù)需要的數(shù)據(jù),但會(huì)出現(xiàn)當(dāng)前Sink故障或數(shù)據(jù)收集請(qǐng)求量較大的情況,這時(shí)單一Sink配置可能就無(wú)法保證Flume開發(fā)的可靠性。因此,F(xiàn)lume提供FlumeSinkProcessors解決上述問題。Sink處理器允許定義Sinkgroups,將多個(gè)sink分組到一個(gè)實(shí)體中,Sink處理器就可通過(guò)組內(nèi)多個(gè)sink為服務(wù)提供負(fù)載均衡功能。

8.4Flume的可靠性保證負(fù)載均衡負(fù)載均衡接收器處理器(Loadbalancingsinkprocessor)提供了在多個(gè)sink上進(jìn)行負(fù)載均衡流量的功能,它維護(hù)一個(gè)活躍的sink索引列表,需在其上分配負(fù)載,還支持round_robin(輪詢)和random(隨機(jī))選擇機(jī)制進(jìn)行流量分配,默認(rèn)選擇機(jī)制為round_robin。Loadbalancingsinkprocessor提供的配置屬性如下所示。屬性名稱默認(rèn)值相關(guān)說(shuō)明sinks–以空格分隔的參與sink組的sink列表processor.typedefault組件類型名需必須是load_balanceprocessor.backofffalse設(shè)置失敗的sink進(jìn)入黑名單processor.selectorround_robin選擇機(jī)制processor.selector.maxTimeOut30000失敗sink放置在黑名單的超時(shí)時(shí)間

8.4Flume的可靠性保證故障轉(zhuǎn)移故障轉(zhuǎn)移接收器處理器(FailoverSinkProcessor)維護(hù)一個(gè)具有優(yōu)先級(jí)的sink列表,保證在處理event時(shí),只需有一個(gè)可用的sink即可。故障轉(zhuǎn)移機(jī)制工作原理是將故障的sink降級(jí)到故障池中,在池中為它們分配一個(gè)冷卻期,在重試之前冷卻時(shí)間會(huì)增加,當(dāng)sink成功發(fā)送event后,它將恢復(fù)到活躍池中。FailoverSinkProcessor提供的配置屬性如下所示。屬性名稱默認(rèn)值相關(guān)說(shuō)明sinks–以空格分隔的參與sink組的sink列表processor.typedefault組件類型名需必須是failoverprocessor.priority.<sinkName>–設(shè)置sink的優(yōu)先級(jí)取值processor.maxpenalty30000失敗sink的最大退避時(shí)間

8.5Flume攔截器攔截器TimestampInterceptorHostInterceptorStaticInterceptorRemoveHeaderInterceptorUUIDInterceptorMorphlineInterceptorSearchandReplaceInterceptorRegexFilteringInterceptorRegexExtractorInterceptorFlumeInterceptors(攔截器)用于對(duì)Flume系統(tǒng)數(shù)據(jù)流中event的修改操作。使用Flume攔截器時(shí),只需參考官方配置屬性在采集方案中選擇性的配置即可,當(dāng)涉及到配置多個(gè)攔截器時(shí),攔截器名稱間需用空格分隔,且攔截器配置順序就是攔截順序。Flume1.8.0版本中,F(xiàn)lume提供并支持的攔截器有很多,具體如下所示。

8.5Flume攔截器攔截器TimestampInterceptor(時(shí)間戳攔截器)將流程執(zhí)行時(shí)間插入到event的header頭部,此攔截器插入帶有timestamp鍵的標(biāo)頭,其值為對(duì)應(yīng)時(shí)間戳。若配置中已存在時(shí)間戳?xí)r,此攔截器可保留現(xiàn)有時(shí)間戳,TimestampInterceptor提供的常用配置屬性如下所示。屬性名稱默認(rèn)值相關(guān)說(shuō)明type–組件類型名需必須是timestampheadertimestamp用于放置生成的時(shí)間戳的標(biāo)頭的名稱preserveExistingfalse如果時(shí)間戳已存在,是否應(yīng)保留,true或false

8.5Flume攔截器攔截器屬性名稱默認(rèn)值相關(guān)說(shuō)明type–組件類型名需必須是staticpreserveExistingtrue如果配置的header已存在,是否應(yīng)保留keykey應(yīng)創(chuàng)建的header的名稱valuevalue應(yīng)創(chuàng)建的header對(duì)應(yīng)的靜態(tài)值StaticInterceptor(靜態(tài)攔截器)允許用戶將具有靜態(tài)值的靜態(tài)頭附加到所有event。當(dāng)前不支持一次指定多個(gè)header頭,但是用戶可定義多個(gè)StaticInterceptor來(lái)為每一個(gè)攔截器都追加一個(gè)header,StaticInterceptor提供的常用配置屬性如下所示。

8.6案例——日志采集案例分析-數(shù)據(jù)抽取實(shí)時(shí)顯示目標(biāo):Flume監(jiān)控一端Console,另一端Console發(fā)送消息,使被監(jiān)控端實(shí)時(shí)顯示。分步實(shí)現(xiàn):

創(chuàng)建FlumeAgent配置文件flume-telnet.conf安裝telnet工具3判斷44444端口是否被占用4先開啟flume先聽端口

5使用telnet工具向本機(jī)的44444端口發(fā)送內(nèi)容

8.6案例——日志采集案例分析-Hive日志上傳HDFS目標(biāo):實(shí)時(shí)監(jiān)控hive日志,并上傳到HDFS中分步實(shí)現(xiàn):拷貝Hadoop相關(guān)jar到Flume的lib目錄下創(chuàng)建flume-hdfs.conf文件執(zhí)行監(jiān)控配置

8.6案例——日志采集案例分析-監(jiān)聽目錄的文件動(dòng)態(tài)目標(biāo):實(shí)時(shí)監(jiān)控hive日志,并上傳到HDFS中分步實(shí)現(xiàn):分步實(shí)現(xiàn):創(chuàng)建配置文件flume-dir.conf執(zhí)行測(cè)試

8.6案例——日志采集多Agent數(shù)據(jù)傳遞-案例場(chǎng)景A、B兩臺(tái)日志服務(wù)機(jī)器實(shí)時(shí)生產(chǎn)日志主要類型為access.log、nginx.log、web.log現(xiàn)在要求:把A、B機(jī)器中的access.log、nginx.log、web.log采集匯總到C機(jī)器上然后統(tǒng)一收集到hdfs中。但是在hdfs中要求的目錄為:/source/logs/access/20160101/**/source/logs/nginx/20160101/**/source/logs/web/20160101/**

8.6案例——日志采集多Agent數(shù)據(jù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論