作业FLUME01:Flume实时抽取监控目录数据

Flume功能 、Agent 概念及Agent三个组成部分和常见功能

Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

Agent :使用JVM 运行Flume。每台机器运行一个agent,但是可以在一个agent中包含多个sources和sinks。
Client: 生产数据,运行在一个独立的线程。
Source: 从Client收集数据,传递给Channel。
Sink :从Channel收集数据,运行在一个独立线程。
Channel: 连接 sources 和 sinks ,这个有点像一个队列。
Events :可以是日志记录、 avro 对象等。

作业FLUME01:Flume实时抽取监控目录数据_第1张图片

flume导入到hdfs中大文件,以时间为分区,自定义文前缀

配置文件
flume-env.sh

 export JAVA_HOME=/usr/jdk1.7.0_79

flume-tail-conf.properties

a2.sources = r2
a2.channels = c2
a2.sinks = k2

a2.sources.r2.type=exec
a2.sources.r2.command=tail -F /opt/cdh/hive-0.13.1-cdh5.3.6/logs/hive.log
a2.sources.r2.shell=/bin/bash -c

a2.channels.c2.type=memory
a2.channels.c2.capacity=1000
a2.channels.c2.transactionCapacity=100

a2.sinks.k2.hdfs.useLocalTimeStamp=true
a2.sinks.k2.type=hdfs
a2.sinks.k2.hdfs.path=hdfs://hadoop0:9000/user/flume/hive-logs/%Y/%m/%d/%H

a2.sinks.k2.hdfs.filePrefix=mytest
a2.sinks.k2.hdfs.minBlockReplicas=1
a2.sinks.k2.hdfs.fileType=DataStream
a2.sinks.k2.hdfs.writeFormat=Text
a2.sinks.k2.hdfs.batchSize=10

a2.sinks.k2.hdfs.rollInterval=0
a2.sinks.k2.hdfs.rollSize=10240
a2.sinks.k2.hdfs.rollCount=0
a2.sinks.k2.hdfs.idleTimeout=60

a2.sources.r2.channels=c2
a2.sinks.k2.channel=c2

创建hdfs文件夹路径
cmd

bin/flume-ng agent --conf conf --name a2 --conf-file conf/flume-tail-conf.properties -Dflume.root.logger=INFO,console

作业FLUME01:Flume实时抽取监控目录数据_第2张图片

理解Flume如何在企业项目中的使用及【实时抽取监控目录数据】案例编写

作业FLUME01:Flume实时抽取监控目录数据_第3张图片
作业FLUME01:Flume实时抽取监控目录数据_第4张图片

实时抽取监控目录数据

配置文件
flume-spooling-conf.properties

a2.sources = r2
a2.channels = c2
a2.sinks = k2

a2.sources.r2.type=spooldir
a2.sources.r2.spoolDir=/opt/cdh/datas/spool
a2.sources.r2.ignorePattern=^(.)*\\.tmp$
a2.sources.r2.fileSuffix=.delete
a2.sources.r2.channels=c2


a2.sinks.k2.type=hdfs
a2.sinks.k2.hdfs.path=hdfs://hadoop0:9000/user/flume/spool-logs/%Y/%m/%d/%H
a2.sinks.k2.hdfs.filePrefix=mytest

a2.sinks.k2.hdfs.rollInterval = 60
a2.sinks.k2.hdfs.rollSize=128000000
a2.sinks.k2.hdfs.rollCount = 0
a2.sinks.k2.hdfs.batchSize = 10
a2.sinks.k2.hdfs.round = true 
a2.sinks.k2.hdfs.roundValue = 6
a2.sinks.k2.hdfs.roundUnit = hour
a2.sinks.k2.hdfs.useLocalTimeStamp = true
a2.sinks.k2.channel=c2
a2.sinks.k2.hdfs.fileType = DataStream


a2.channels.c2.type=file
a2.channels.c2.checkpointDir=/opt/cdh/flume-1.5.0-cdh5.3.6-bin/spool/ckpdir
a2.channels.c2.dataDirs=/opt/cdh/flume-1.5.0-cdh5.3.6-bin/spool/datadir

cmd

bin/flume-ng agent --conf conf --name a2 --conf-file conf/flume-spooling-conf.properties -Dflume.root.logger=INFO,console

作业FLUME01:Flume实时抽取监控目录数据_第5张图片

你可能感兴趣的:(作业FLUME01:Flume实时抽取监控目录数据)