数据采集工具flume
概述
flume是在2011年被首次引入到Cloudera的CDH3分发中,2011年6月,Cloudera将flume项目捐献给Apache基金会。2012年,flume项目从孵化器变成了顶级项目,在孵化的这一年中,开发人员就已经开始基于Star Trek Themed标签对flume进行重构,并创建了flume-NG(Flume the next Generation)。
Apache的flume-NG是一个分布式的,可靠的,和可用的系统。能有效地收集,汇总和移动大量的从许多不同的来源,一个集中式数据存储日志数据。
Apache的flume的使用不仅限于日志数据聚集。由于数据来源是可定制的,flume可以用来大量事件(每一行数据被当做一个event)数据包括但不限
于传输网络数据,社交媒体产生的数据,电子邮件和几乎任何数据源的可能。
Apache的flume-NG是Apache软件基金会的顶级项目,目前有两个版本的代码,版本0.9.x和1.x。1.x是全新的架构,该版本重新改进了的性能和配置
的灵活性,鼓励用户使用。
系统要求
1、Java:Java 1.6或更高版本(推荐使用Java 1.7);
2、内存:配置使用sources、channels、sinks时需要有足够的内存;
3、磁盘空间:配置使用channels、sinks时需要有足够的磁盘空间;
4、目录权限:使用agent时需要拥有目录的读写权限;
数据流模型
flume事件被定义为数据流中一个有效字节和一个可选的字符串属性设置。flume是(JVM)进程中,主机部件通过事件流从外部源的下一个目的地(跳)。
flume源消耗像Web服务器的外部源传递到事件。外部源发出的事件在一个由目标识别的格式flumeflume源。例如,一个公司的flume源可用于从公司客户或其他flume代理发送事件从一个公司的汇流接收Avro事件。类似的流程可以定义使用节俭flume源接收事件从水池或flume节俭节俭RPC客户端或节俭写在从flume节俭的协议而产生的任何语言的客户。当flume源接收事件,就将它保存为一个或多个通道。通道是一个被动的存储,使事件直到它的flumeflume消耗。文件的渠道就是一个例子–通过本地文件系统支持。flume中移除事件从通道和把它变成像HDFS外部储存库(通过flumeHDFS库)或转发到下一个flume,flume源代理(下一跳)在流动。在给定的源和汇的代理异步运行在频道上演的事件。
复杂流动
flume允许用户在事件流中建立多个agent。它允许到达目的地时支持扇入和扇出,上下文路由和备份路由,跳过失败。