Hadoop之Flume採集檔案到hdfs

2021-10-04 18:48:30 字數 2719 閱讀 4399

內容如下:

#定義三大元件的名稱,myagent可以自己定義

myagent.sources = source1

myagent.sinks = sink1

myagent.channels = channel1

# 配置source元件

myagent.sources.source1.type = spooldir

# 定義source型別,檔案目錄

myagent.sources.source1.spooldir = /home/gugu/testdata/

# 指定輸入目錄

myagent.sources.source1.filesuffix=.finished

# 指定採集結束後新增的檔案字尾

myagent.sources.source1.deserializer.maxlinelength=5120

# 單行最大位元組數,如果超過將被截斷

# 配置sink元件

myagent.sinks.sink1.type = hdfs

# sink的型別

myagent.sinks.sink1.hdfs.path =hdfs://master:9000/flume/test/log/%y-%m-%d/%h-%m

# 輸出的hdfs路徑

# 生成檔案的字首(收集到的檔案會被重新命名成隨機字串)

myagent.sinks.sink1.hdfs.filesuffix = .log

# 生成檔案的字尾

myagent.sinks.sink1.hdfs.batchsize= 128

# 當檔案達到多大時,重新整理到hdfs,單位mb

myagent.sinks.sink1.hdfs.filetype = datastream

# 輸出到hdfs中檔案型別,datastream原始檔案

myagent.sinks.sink1.hdfs.writeformat =text

# 寫到hdfs前的檔案格式,需要設定為text

## roll:滾動切換:控制寫檔案的切換規則(如果不需要這個規則,設定為0)

myagent.sinks.sink1.hdfs.rollsize = 512000

## 按檔案體積(位元組)來切

myagent.sinks.sink1.hdfs.rollcount = 1000000

## 按event條數切

myagent.sinks.sink1.hdfs.rollinterval = 60

## 按時間間隔切換檔案

## 控制生成目錄的規則

myagent.sinks.sink1.hdfs.round =

true

# 是否自動生成目錄

myagent.sinks.sink1.hdfs.roundvalue = 10

# 自動生成目錄的時間值

myagent.sinks.sink1.hdfs.roundunit = minute

# 自動 生成目錄的時間單位

myagent.sinks.sink1.hdfs.uselocaltimestamp =

true

# 是否使用本地的時間戳取時間

# channel元件配置

myagent.channels.channel1.type = memory

# channel將資料儲存的位置一般為memory/file

myagent.channels.channel1.capacity = 500000

## event條數

myagent.channels.channel1.transactioncapacity = 100

##flume事務控制所需要的快取容量100條event,如果失敗可以進行回滾

# 繫結source、channel和sink之間的連線

myagent.sources.source1.channels = channel1

myagent.sinks.sink1.channel = channel1

[gugu@master apache-flume-1.9.0-bin]$ bin/flume-ng agent -c conf/ -f conf/dir-hdfs.properties -n myagent -dflume.root.logger=info,console

啟動agent 配置檔案路徑 agent配置的檔案 agent的名字 日誌級別和列印到控制台

#最後乙個引數可以去掉,加上能看到日誌輸出,正式環境可以去掉,由於乙個配置檔案中可以配置多個agent,因此agent的名字要與配置檔案中定義的一致

列印日誌資訊

檢視路徑下的檔案

檢視hdfs上的檔案

在使用「myagent.channels.channel1.transactioncapacity」引數的時候需要注意,這個引數要大於「myagent.sources.source1.batchsize」,原因是source提供資料給channel,需要提供的資料量大於乙個事務的資料條數,預設兩個值都是100.

flume採集案例

1 採集目錄到hdfs 採集需求 某伺服器的某特定目錄下,會不斷產生新的檔案,每當有新檔案出現,就需要把檔案採集到hdfs中去 根據需求,首先定義以下3大要素 採集源,即source 監控檔案目錄 spooldir 下沉目標,即sink hdfs檔案系統 hdfs sink source和sink之...

Flume(03) Flume採集案例

需求分析 採集需求 某伺服器的某特定目錄 export servers dirfile下,會不斷產生新的檔案,每當有新檔案出現,就需要把檔案採集到hdfs中去。需求分析 通過flume採集資料,最重要的就是配置三大元件。這裡可以通過source來監控檔案目錄。通過channel,來將source採集...

flume配置採集日誌

上傳dir hdfs.conf 到flume的conf目錄下 定義三大元件的名稱 ag1.sources source1 ag1.sinks sink1 ag1.channels channel1 配置source元件 ag1.sources.source1.type spooldir ag1.so...