flume
大数据处理流程
1、数据采集
2、数据存储
3、数据清洗
4、数据分析
5、数据展示
在数据采集和搜索工具中flume框架占有一定的市场分量
flume
flume是一种分布式,可靠的高可用的服务,用于有效的收集,聚合和移动大量日志数据,它具有基于数据流的简单灵活的体系结构,它具有调整可靠性机制以及许多故障转移和恢复机制,具有强大的功能和容错能力,它使用一个简单的可扩展数据模型语序在线分析应用程序
flume最开始是由cludera开发的实时日志收集系统,受到了业界的认可与广泛应用,但随着flume功能的扩展,flume的代码工程臃肿,核心组件设计不合理,核心配置不标准等缺点渐渐暴露出来,尤其是在发行版本0.9.4中日志传输不稳定的现象尤为严重
为了解决这些问题2011年10月22号,cloudera对flume进行了里程碑式的改动,重构核心组件,核心配置以及代码架构,并将flume纳入apache旗下,从clouderaflume改名为apacheflume
版本区别
为了区别与之前版本的区分开,重构后的版本称为flumeNG(next generation)重构前的版本成为flumeog(original generation)flume目前只有linux系统的启动脚本没有windows环境的启动脚本
flume的体系结构
flume运行的核心式agent,flume是以agent为最小的独立运行单元,一个agent就是一个jvm,他是一个完整的数据收集工具,含有三个核心组件,分别是source,channel,sink 通过这些组件 event可以从一个地方流向另一个地方,
组件及其作用
--client
客户端,client生产数据,运行在一个独立的线程中
--event
一个数据单元,消息头和消息体组成(events可以式日志记录,avro对象等)
--flow
event从源点达到目的点的迁移的抽象
--agent
一个独立的flume进程,运行在jvm中,包含组件source,channel,sink
每台机器运行一个agent,但是一个ag