Flume1 9 0實時監控目錄下多個新檔案

2021-10-05 18:16:32 字數 2526 閱讀 4410

1.案例需求:使用flume監聽整個目錄的檔案,並上傳至hdfs

2.實現步驟:

(1)建立配置檔案flume-dir-hdfs.conf

建立乙個檔案

[nogc@hadoop102 job]$ vim flume-dir-hdfs.conf
新增如下內容:

a3.sources = r3

a3.sinks = k3

a3.channels = c3

# describe/configure the source

a3.sources.r3.type = spooldir

a3.sources.r3.spooldir = /opt/module/flume/upload

a3.sources.r3.filesuffix = .completed

a3.sources.r3.fileheader = true

#忽略所有以.tmp結尾的檔案,不上傳

a3.sources.r3.ignorepattern = ([^ ]*\.tmp)

# describe the sink

a3.sinks.k3.type = hdfs

a3.sinks.k3.hdfs.path = hdfs://hadoop102:9820/flume/upload/%y%m%d/%h

#上傳檔案的字首

a3.sinks.k3.hdfs.fileprefix = upload-

#是否按照時間滾動資料夾

a3.sinks.k3.hdfs.round = true

#多少時間單位建立乙個新的資料夾

a3.sinks.k3.hdfs.roundvalue = 1

#重新定義時間單位

a3.sinks.k3.hdfs.roundunit = hour

#是否使用本地時間戳

a3.sinks.k3.hdfs.uselocaltimestamp = true

#積攢多少個event才flush到hdfs一次

a3.sinks.k3.hdfs.batchsize = 100

#設定檔案型別,可支援壓縮

a3.sinks.k3.hdfs.filetype = datastream

#多久生成乙個新的檔案

a3.sinks.k3.hdfs.rollinterval = 60

#設定每個檔案的滾動大小大概是128m

a3.sinks.k3.hdfs.rollsize = 134217700

#檔案的滾動與event數量無關

a3.sinks.k3.hdfs.rollcount = 0

# use a channel which buffers events in memory

a3.channels.c3.type = memory

a3.channels.c3.capacity = 1000

a3.channels.c3.transactioncapacity = 100

# bind the source and sink to the channel

a3.sources.r3.channels = c3

a3.sinks.k3.channel = c3

(2)啟動監控資料夾命令

[nogc@hadoop102 flume]$ bin/flume-ng agent --conf conf/ --name a3 --conf-file job/flume-dir-hdfs.conf
說明:在使用spooling directory source時,不要在監控目錄中建立並持續修改檔案;上傳完成的檔案會以.completed結尾;被監控資料夾每500毫秒掃瞄一次檔案變動。

(3)向upload資料夾中新增檔案

在/opt/module/flume目錄下建立upload資料夾

[nogc@hadoop102 flume]$ mkdir upload
向upload資料夾中新增檔案

[nogc@hadoop102 upload]$ touch nogc.txt

[nogc@hadoop102 upload]$ touch nogc.tmp

[nogc@hadoop102 upload]$ touch nogc.log

(4)檢視hdfs上的資料

(5)等待1s,再次查詢upload資料夾

[nogc@hadoop102 upload]$ ll

總用量 0

-rw-rw-r--. 1 nogc nogc 0 5月 20 22:31 nogc.log.completed

-rw-rw-r--. 1 nogc nogc 0 5月 20 22:31 nogc.tmp

-rw-rw-r--. 1 nogc nogc 0 5月 20 22:31 nogc.txt.completed

Flume 1 9 0的安裝和第一次啟動

確保你已經按照了jdk 1.8 解壓安裝包 移動到你想要的位置 修改名稱等 配置檔案 指定jdk的安裝路徑 配置環境變數 vim bashrc flume export flume home home hadoop flume 1.9.0 export path path flume home bi...

實時監控目錄下多個新檔案

a3.sources r3 a3.sinks k3 a3.channels c3 describe configure the source a3.sources.r3.type spooldir a3.sources.r3.spooldir opt module flume 1.7.0 uploa...

監控目錄下的檔案操作與實時同步

若有個需求 要求記錄下某個目錄下的所有操作,包括建立檔案 修改檔案 重新命名 刪除檔案的操作,將以上所有的操作全部記錄到日誌中,或者做其他操作。net提供了乙個方法叫做 system.io.filesystemwatcher 方便powershell來呼叫。具體使用方法,我慢慢解釋。folder c...