Flume的安装配置

flume的概述
Apache Flume是一个分布式,可靠且可用的系统,用于有效地从许多不同的source收集,聚合和移动大量日志数据到集中式数据存储。
Apache Flume的使用不仅限于日志数据聚合。由于数据source是可定制的,因此Flume可用于传输大量event 数据,包括但不限于网络流量数据,社交媒体生成的数据,电子邮件消息以及几乎任何可能的数据source。
Apache Flume是Apache Software Foundation的顶级项目。

系统要求

  1. Java运行时环境 - Java 1.8或更高版本
  2. 内存 - 为source,channel或 sink 配置的内存
  3. 磁盘空间 - channel或sink配置的磁盘空间
  4. 目录权限 - agent使用的目录的读/写权限

Flume event 被定义为具有字节有效负载和可选字符串属性集的数据流单元。Flume agent 是一个(JVM)进程,它承载event 从外部source流向下一个目标(跃点)的组件。

安装步骤
1.将flume的压缩文件上传到linux中

2.进入到flume/conf 将 flume-env.sh.templ 复制为flume-env.sh

  1. 将export JAVA_OPTS 那行的注释去掉

4.进入flume目录下 vi dir-hdfs.conf 不用担心没有文件怎么办,vi命令会自己创建一个文件

`#定义三大组件的名称
ag1.sources = source1
ag1.sinks = sink1
ag1.channels = channel1

配置source组件

ag1.sources.source1.type = spooldir
ag1.sources.source1.spoolDir = /root/data/log
ag1.sources.source1.fileSuffix=.FINISHED
ag1.sources.source1.inputCharset=utf-8
ag1.sources.source1.deserializer.maxLineLength=5120

配置sink组件

ag1.sinks.sink1.type = hdfs
ag1.sinks.sink1.hdfs.path =hdfs://192.168.56.2/access_log/%y-%m-%d/%H-%M
ag1.sinks.sink1.hdfs.filePrefix = app_log
ag1.sinks.sink1.hdfs.fileSuffix = .log
ag1.sinks.sink1.hdfs.batchSize= 100
ag1.sinks.sink1.hdfs.fileType = DataStream
ag1.sinks.sink1.hdfs.writeFormat =Text

roll:滚动切换:控制写文件的切换规则

按文件体积(字节)来切

ag1.sinks.sink1.hdfs.rollSize = 512000

按event条数切

ag1.sinks.sink1.hdfs.rollCount = 1000000

按时间间隔切换文件

ag1.sinks.sink1.hdfs.rollInterval = 60

控制生成目录的规则(round回滚)

ag1.sinks.sink1.hdfs.round = true
ag1.sinks.sink1.hdfs.roundValue = 10
ag1.sinks.sink1.hdfs.roundUnit = minute
ag1.sinks.sink1.hdfs.useLocalTimeStamp = true

channel组件配置

ag1.channels.channel1.type = memory

event条数

ag1.channels.channel1.capacity = 500000

flume事务控制所需要的缓存容量600条event

ag1.channels.channel1.transactionCapacity = 600

绑定source、channel和sink之间的连接

ag1.sources.source1.channels = channel1
ag1.sinks.sink1.channel = channel1`

5.执行bin/flume-ng agent -c conf/ -f dir-hdfs.conf -n ag1 -Dflume.root.logger=INFO,console
启动后flume会一直在运行,在创建一个Xshell窗口进行一下操作

6.根据你配置source组件 spoolDir 创建对应的路径 创建源目录log 给与777权限 并且在log目录下存放需要采集的数据
我的是ag1.sources.source1.spoolDir = /root/data/log

cd ~ #进入根目录 /root

mkdir data #创建data

cd data #进入data

mkdir log #创建log

chmod 777 log #给log赋予权限

touch a.txt #创建一个文本插入数据用来测试

echo hello world > a.txt

mv a.txt log/a.txt

7.观察flume中日志信息,查看采集后的文件是否加了后缀 .FINISHED

同时可在/root/data/log 中查看他的变化,和hdfs上的access_log文件夹里面的变化

posted @ 2020-12-23 09:02  啥也不懂的三水  阅读(179)  评论(0编辑  收藏  举报