flume 採集 目錄到 到 HDFS

2021-08-21 04:20:49 字數 2508 閱讀 9167

案例:採集 目錄到 到 hdfs

採集需求:某伺服器的某特定目錄下,會不斷產生新的檔案,每當有新檔案出現,就需要把檔案採集到 hdfs 中去。

根據需求,首先定義以下 3 大要素:

資料來源元件,即 source ——監控檔案目錄 : spooldir

spooldir 特性:

1、監視乙個目錄,只要目錄中出現新檔案,就會採集檔案中的內容

2、採集完成的檔案,會被 agent 自動新增乙個字尾:.completed

3、所監視的目錄中不允許重複出現相同檔名的檔案

下沉元件,即 sink——hdfs 檔案系:hdfs sink

通道元件,即 channel——可用 file channel 也可以用記憶體 channel。

配置檔案編寫:spooldir-hdfs.properties

#定義三大元件的名稱

agent1.sources = source1

agent1.sinks = sink1

agent1.channels = channel1

# 配置 source 元件

agent1.sources.source1.type = spooldir

agent1.sources.source1.spooldir = /home/cry/cry_logs/

agent1.sources.source1.fileheader = false

#配置***

agent1.sources.source1.interceptors = i1

agent1.sources.source1.interceptors.i1.type = host

agent1.sources.source1.interceptors.i1.hostheader = hostname

# 配置 sink 元件

agent1.sinks.sink1.type = hdfs

agent1.sinks.sink1.hdfs.path=hdfs://bd1803/flume_log/%y-%m-%d/%h-%m

agent1.sinks.sink1.hdfs.fileprefix = events

agent1.sinks.sink1.hdfs.maxopenfiles = 5000

agent1.sinks.sink1.hdfs.batchsize= 100

agent1.sinks.sink1.hdfs.filetype = datastream

agent1.sinks.sink1.hdfs.writeformat =text

agent1.sinks.sink1.hdfs.rollsize = 102400

agent1.sinks.sink1.hdfs.rollcount = 1000000

agent1.sinks.sink1.hdfs.rollinterval = 60

#agent1.sinks.sink1.hdfs.round = true

#agent1.sinks.sink1.hdfs.roundvalue = 10

#agent1.sinks.sink1.hdfs.roundunit = minute

agent1.sinks.sink1.hdfs.uselocaltimestamp = true

# use a channel which buffers events in memory

agent1.channels.channel1.type = memory

agent1.channels.channel1.keep-alive = 120

agent1.channels.channel1.capacity = 500000

agent1.channels.channel1.transactioncapacity = 600

# bind the source and sink to the channel

agent1.sources.source1.channels = channel1

agent1.sinks.sink1.channel = channel1

channel 引數解釋:

capacity:預設該通道中最大的可以儲存的 event 數量

trasactioncapacity:每次最大可以從 source 中拿到或者送到 sink 中的 event 數量

keep-alive:event 新增到通道中或者移出的允許時間

啟動:bin/flume-ng agent -c conf -f agentconf/spooldir-hdfs.properties -n agent1

測試:1、如果 hdfs 集群是高可用集群,那麼必須要放入 core-site.xml 和 hdfs-site.xml 檔案到

$flume_home/conf 目錄中;

2、檢視監控的/home/hadoop/logs 資料夾中的檔案是否被正確上傳到 hdfs 上;

3、在該目錄中建立檔案,或者從其他目錄往該目錄加入檔案,驗證是否新增的檔案能被自

動的上傳到 hdfs。

Flume 採集目錄到HDFS

需求某服務 的某特定目錄下,會 斷產生新的檔案,每當有新檔案出現,就需要把檔案採集到hdfs中去 思 根據需求,首先定義以下3大要素 1.資料來源元件,即source 監控檔案目錄 spooldir 1.監視乙個目錄,只要目錄 現新檔案,就會採集檔案中的內容 2.採集完成的檔案,會被agent自動新...

Flume採集目錄及檔案到HDFS案例

使用flume採集目錄需要啟動hdfs集群 vi spool hdfs.conf name the components on this agent a1.sources r1 a1.sinks k1 a1.channels c1 describe configure the source 注意 不...

Flume採集檔案到HDFS

在flume和hadoop安裝好的情況下 1.遇到的坑 在安裝hadoop時,配置 core site.xml 檔案一定要注意。fs.defaultfs name hdfs master 9000 value property 上述的value值使用的是主機名稱 master 或者ip位址,不能使用...