Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。
1、基础架构-
Agent:
Agent是一个JVM进程,它以事件的形式将数据从源头送至目的地。
Agent主要有3个部分组成,Source、Channel、Sink
-
Source:
负责接收数据到Flume Agent的组件。
-
Sink:
Sink不断地轮询Channel中的事件且批量地移除它们,并将这些事件批量写入到存储或索引系统、或者被发送到另一个Flume Agent。
-
Channel:
Channel是位于Source和Sink之间的缓冲区。Channel允许Source和Sink运作在不同的速率上。Channel是线程安全的,可以同时处理几个Source的写入 *** 作和几个Sink的读取 *** 作。
分为Memory Channel和File Channel。
Memory Channel是内存中的队列。File Channel将所有事件写到磁盘。
-
Event:
Flume数据传输的基本单元,以Event的形式将数据从源头送至目的地。Event由Header和Body两部分组成,Header用来存放该event的一些属性,为K-V结构,Body用来存放该条数据,形式为字节数组。
-
解压安装包至指定路径并修改目录名
tar -zxvf /opt/software/apache-flume-1.9.0-bin.tar.gz -C /opt/module/ mv /opt/module/apache-flume-1.9.0-bin /opt/module/flume-1.9.0
-
将lib目录下的guava包删除以兼容Hadoop 3.1.3
rm /opt/module/flume/lib/guava-11.0.2.jar
-
修改conf下的log4j.properties确定日志打印的位置
#console表示同时将日志输出到控制台 flume.root.logger=INFO,LOGFILE,console #固定日志输出的位置 flume.log.dir=/opt/module/flume/logs #日志文件的名称 flume.log.file=flume.log
-
环境变量配置并source。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)