apache flume基本介绍
flume目前是apache旗下的一款顶级开源项目, 最初是有cloudera公司开发的, 后期贡献给apache, flume是一款专门用于数据数据采集的工作, 主要的目的将数据从一端传输的另一端操作
flume也是使用java语言开发的 , flume一般部署在数据采集节点
在flume中提供多种数据源的组件和多种目的地组件, 主要的目的是为了能适应更多的数据采集场景
flume老版本(0.8x)版本之前, flume OG 在 0.8版本以后, 更为 flume NG , 同时整个架构也发生变化, 整体操作也是不同的, 目前主要是采用 flume NG 版本, OG版本一般见不到…
使用flume 核心就是学习如何配置flume的采集脚本(采集配置文件)
运行机制:
整个flume启动后, 就是一个agent实例对象, 而一个agent实例对象一般有三大组件组成:
-
- source组件: 数据源 主要用于对接数据源, 从数据源中采集数据 flume提供多种source组件
-
- sink组件: 下沉地(目的地) 主要用于将数据源采集过来数据通过sink下沉具体的目的中 flume提供多种sink组件
-
- channel组件: 管道 主要起到缓存的作用, 从source将数据写入到channel从, sink从channel获取数据, 然后继续下沉即可, flume提供多种channel组件
在agent内部, 数据传递是一个个event对象方式来传输的, event对象就是数据内容, 只是对数据本身包裹, event除了可以存储数据本身以外, 还可以存储一个头信息(描述信息)
需要认识的Source组件:
需要认识的sink组件:
需要认识channel组件: