flume hdfs 大數(shù)據(jù) 數(shù)據(jù)采集
以下是關(guān)于一個(gè)agent的exec-hdfs.properties采集配置文件
# 定義這個(gè)agent中各組件的名字
a1.sources = r1
a1.sinks = k1
a1.channels = c1
#【Source】
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /root/flumespool/access.log
a1.sources.r1.shell = /bin/bash -c
#【Channel】
#表示a1的channel類型是memory內(nèi)存型
a1.channels.c1.type = memory
#表示通道channel中能夠存儲的最大事件數(shù)
a1.channels.c1.capacity = 1000
#表示每次從source獲取的事件數(shù)或給到sink的事件數(shù)
a1.channels.c1.transactionCapacity = 100
#【Sink】
# Describe the sink
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = hdfs://mini1:9000/flume/%Y%m%d/%H
#上傳文件的前綴
a1.sinks.k1.hdfs.filePrefix = daoke360.events.%M
#上傳文件的后綴
a1.sinks.k1.hdfs.fileSuffix=.lzo
#設(shè)置文件類型,DataStream不會壓縮輸出文件,默認(rèn)為SequenceFile
#當(dāng)使用DataStream時(shí)候,文件不會被壓縮,不需要設(shè)置hdfs.codeC;
#a1.sinks.k1.hdfs.fileType = DataStream
#當(dāng)使用CompressedStream時(shí)候,文件會被壓縮,需要設(shè)置hdfs.codeC;
a1.sinks.k1.hdfs.fileType = CompressedStream
#文件壓縮格式,包括:gzip, bzip2, lzo, lzop, snAppy
a1.sinks.k1.hdfs.codeC = lzo
#writeFormat 序列文件記錄的格式。在使用Flume創(chuàng)建數(shù)據(jù)文件之前設(shè)置為Text,否則 Apache Impala 或Apache Hive無法讀取這些文件。
#a1.sinks.k1.hdfs.fileType = SequenceFile
#寫sequence文件的格式。包含:Text, Writable(默認(rèn))
#a1.sinks.k1.hdfs.writeFormat = Text
#指定每個(gè)HDFS塊的最小副本數(shù)。如果未指定,則它來自類路徑中的默認(rèn)Hadoop配置。
a1.sinks.k1.hdfs.minBlockReplicas = 1
#積攢多少個(gè)Event才flush到HDFS一次
a1.sinks.k1.hdfs.batchSize = 100
#設(shè)置每個(gè)文件的滾動大小,單位byte
#rollsize的配置表示到2G大小的時(shí)候回滾到下一個(gè)文件,也就是到了這個(gè)時(shí)間 hdfs就會rename正在寫的文件到已經(jīng)寫完
a1.sinks.k1.hdfs.rollSize = 2048000000
#文件的滾動與Event數(shù)量無關(guān)
a1.sinks.k1.hdfs.rollCount = 0
#多久生成一個(gè)新的文件,單位秒,這里配置的是每個(gè)6小時(shí)回滾到下一個(gè)文件
#這個(gè)值不能設(shè)置為0,否則flume在連接hdfs時(shí)會報(bào)超時(shí)連接的error,導(dǎo)致程序反復(fù)在重連
a1.sinks.k1.hdfs.rollInterval = 21600
#是否應(yīng)舍入時(shí)間戳
a1.sinks.k1.hdfs.round = true
#舍入時(shí)間戳為小時(shí),有三個(gè)值可配置(second, minute , hour)
a1.sinks.k1.hdfs.roundUnit = hour
#按1小時(shí)進(jìn)行舍入
a1.sinks.k1.hdfs.roundValue = 1
#是否使用本地時(shí)間戳
a1.sinks.k1.hdfs.useLocalTimeStamp = true
#當(dāng)目前被打開的臨時(shí)文件在該參數(shù)指定的時(shí)間(秒)內(nèi),沒有任何數(shù)據(jù)寫入,則將該臨時(shí)文件關(guān)閉并重命名成目標(biāo)文件;默認(rèn)值:0
a1.sinks.k1.hdfs.idleTimeout = 0
#執(zhí)行HDFS操作的超時(shí)時(shí)間(單位:毫秒),默認(rèn)值:10000
a1.sinks.k1.hdfs.callTimeout = 10000
#【source channel sink】
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1