天天看点

实时读取本地文件到HDFS

1) 在jobconf目录创建flume-hdfs.conf文件

# 1.定义agent的名字a2

a2.sources = r2

a2.sinks = k2

a2.channels = c2

#2.定义Source

a2.sources.r2.type = exec

a2.sources.r2.command = tail -F /opt/Felix  Felix是文件,这里把自己坑了一次

a2.sources.r2.shell = /bin/bash -c

#3.定义sink

a2.sinks.k2.type = hdfs

a2.sinks.k2.hdfs.path = hdfs://bigdata121:9000/flume/%H   (注意修改为自己的机器)

#上传文件的前缀

a2.sinks.k2.hdfs.filePrefix = Andy-

#是否按照时间滚动文件夹

a2.sinks.k2.hdfs.round = true

#多少时间单位创建一个新的文件夹

a2.sinks.k2.hdfs.roundValue = 1

#重新定义时间单位

a2.sinks.k2.hdfs.roundUnit = hour

#是否使用本地时间戳

a2.sinks.k2.hdfs.useLocalTimeStamp = true

#积攒多少个Event才flush到HDFS一次

a2.sinks.k2.hdfs.batchSize = 1000

#设置文件类型,可支持压缩

a2.sinks.k2.hdfs.fileType = DataStream

#多久生成一个新的文件

a2.sinks.k2.hdfs.rollInterval = 600

#设置每个文件的滚动大小

a2.sinks.k2.hdfs.rollSize = 134217700

#文件的滚动与Event数量无关

a2.sinks.k2.hdfs.rollCount = 0

#最小副本数

a2.sinks.k2.hdfs.minBlockReplicas = 1

# 4.定义Channel 

a2.channels.c2.type = memory

a2.channels.c2.capacity = 1000

a2.channels.c2.transactionCapacity = 100

# 5.链接

a2.sources.r2.channels = c2

a2.sinks.k2.channel = c2

执行监控配置 命令如下 :

/opt/module/flume1.8.0/bin/flume-ng agent \

--conf /opt/module/flume1.8.0/conf/ \

--name a2 \

--conf-file /opt/module/flume1.8.0/jobconf/flume-hdfs.conf   

 注: flume-hdfs.conf 这个文件是自己配置的,还有jobconf 文件夹也是创建的

实时读取本地文件到HDFS

在bigdata112上写入数据到vi Andy ,结果如下 

实时读取本地文件到HDFS