前言
在一个完整的离线大数据处理系统中,除了hdfs+mapreduce+hive组成分析系统的核心之外,还需要数据采集、结果数据导出、任务调度等不可或缺的辅助系统,而这些辅助工具在hadoop生态体系中都有便捷的开源框架,如图所示:
1. Flume的基本介绍
- Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。
- Flume可以采集文件,socket数据包、文件、文件夹、kafka等各种形式源数据,又可以将采集到的数据(下沉sink)输出到HDFS、hbase、hive、kafka等众多外部存储系统中
- 一般的采集需求,通过对flume的简单配置即可实现
- Flume针对特殊场景也具备良好的自定义扩展能力,
因此,flume可以适用于大部分的日常数据采集场景
flume是cloudera公司开源提供的一个数据采集的框架,可以从各个地方采集我们的数据,文件,文件夹,网络端口。
flume是一个数据采集的框架,说白了就是搬运数据的。
2. Flume架构图
2.1 简单结构
- source:对接数据源,获取数据,采集数据的组件。
- channel:source采集的数据全部都发送到channel里面来,管道,做一个缓冲,缓冲一下source发送过来的数据,然后批量的发送给sink。
- sink:决定我们的数据需要发送到哪里去。
- agent:一个flume的程序运行起来,就叫做一个agent。
- events:我们一条条的数据,一条数据就是一个event。
2.2 复杂结构
多级agent之间串联