0
点赞
收藏
分享

微信扫一扫

flume 定义 组成架构 内部原理


目录

  • ​​flume 定义​​
  • ​​flume 组成架构​​
  • ​​flume Agent​​
  • ​​flume Source​​
  • ​​flume Channel​​
  • ​​flume Sink​​
  • ​​flume Event​​
  • ​​flume Agent 内部原理​​
  • ​​拦截器​​
  • ​​选择器​​
  • ​​监控器​​

flume 定义

Flume是一个高可用的​​分布式海量日志采集、聚合和传输的系统​

​​官网下载地址:http://archive.apache.org/dist/flume/​​

flume 组成架构

flume 定义 组成架构 内部原理_拦截器

flume Agent

Agent​​是一个JVM进程​​,flume 框架运行时,会一个进程的形式运行

Agent​​主要有3个部分组成​​,Source、Channel、Sink

flume Source

Source是​​负责接收数据的组件​​,Source的类型有Taildir Source、exec、netcat

(1)exec:监控后台日志

(2)netcat:监控后台产生日志的端口

(3)Taildir Source:断点续传;动态监控多目录,多文件

flume Channel

Channel是​​负责缓冲数据的组件​​​,Channel的类型有​​Memory Channel、File Channel​​​和​​kafkaChannel​

(1)MemoryChannel:基于内存可靠性低,传输效率高( 默认容量:100万个event)

(2)FileChannel:基于磁盘,可靠性高,传输效率低(默认容量:100个event)

​注意:​​FileChannel可以通过配置dataDirs指向多个路径,每个路径对应不同的硬盘,增大Flume吞吐量

(3)kafkaChannel:可靠性高,数据存储在kafka里面,基于磁盘,传输速度大于Memory Channel + Kafka Sink,因为省去了Sink 阶段

选型:

  1. 如果下一级是Kafka,优先选择Kafka Channel
  2. 如果是金融、对钱要求准确的公司,选择File Channel
  3. 如果就是普通的日志,通常可以选择Memory Channel

flume Sink

Sink是​​负责发送数据的组件​​​,Sink 的类型有​​hdfs 、HBase​

flume Event

​数据传输的最小单元​​​,以事件的形式将数据从源头送至目的地。​​例如​​一行数据可封装为一个事件event

flume Agent 内部原理

flume 定义 组成架构 内部原理_拦截器_02

拦截器

​功能:​​ 预清洗数据

自定义拦截器大致步骤:

  1. 定义一个类,实现Interceptor接口
  2. 实现四个方法:initialize、close、单event处理,多event处理

项目中拦截器主要有

(1)ETL拦截器:主要是用来判断json是否完整。没有做复杂的清洗操作主要是防止过多的降低传输速率

(2)时间戳拦截器:主要是解决零点漂移问题

拦截器可以不用吗?

ETL拦截器可以不用;需要在下一级Hive的dwd层和SparkSteaming里面处理。但是时间戳拦截器建议使用,如果不用需要采用延迟15-20分钟处理数据的方式,比较麻烦

选择器

Replicating:默认选择器。功能:将数据发往下一级所有通道
Multiplexing:选择性发往指定通道(根据event头部决定发送到哪个通道)

监控器

Ganglia


举报

相关推荐

0 条评论