【Flume NG用户指南】(0)介绍
2014-05-30 19:46
232 查看
作者:周邦涛(Timen)
Email:zhoubangtao@gmail.com
转载请注明出处: /article/9909408.html
本文将分几个博客将最新的Flume 1.5.0 User Guide翻译成中文,并且加入自己的一些理解
Apache Flume的用途不仅限于日志数据的聚合。由于数据源是可以定制化的,Flume可以用来传输大量的event数据,它包括但不限于网络数据、社交媒体生成的数据、email消息和很多任何可能的数据源。
Apache Flume是Apache基金会(Apache Software Foundation)的顶级项目。
目前有两个可用的发行版 —— 0.9.x 和 1.x。
0.9.x版本的文档在http://archive.cloudera.com/cdh/3/flume/UserGuide/中
这个文档适合于1.x版本(主要是1.4.0和1.5.0)。
这里鼓励新用户和老用户使用1.x 发行版,以便利用新架构中提供的性能改进和配置灵活性。
内存 —— 对source,channel和sink使用的配置有充足的内存
磁盘空间 —— 对channel和sink使用的配置有充足的磁盘空间
目录权限 —— agent所使用目录的读写权限
一个Flume Source 消费外部源(比如Web服务器)传送给它的event。外部源以一种能够被目标Flume Source识别的数据格式发送event给Flume。例如,一个Avro Flume Source能够用来从Avro客户端或者数据流中其他的Flume Agent的Avro Sink中接收Avro event。可以使用Thrift Source接收来自Thrift Sink或者Flume Thrift Rpc客户端或者使用Flume Thrift协议生成的任何语言的客户端的event,从而实现相似的数据流。当一个Flume
Source接收到一个event,它就会把它存入一个或多个Channel中。Channel是一个消极的存储器,它会一直存储着event直到它被一个Flume Sink消费掉。FileChannel就是一个例子 —— 它建立在本地文件系统之上。Flume Sink将event从Channel中移除,让后把它放到外部的存储系统(比如HDFS,通过Flume HDFS Sink)中或者转发到整个数据流的下一个Flume Agent(也即下一跳)。在Flume Agent中Source和Sink异步的使用Channel中存储的event。
下篇文章讲述Flume 安装【Flume NG用户指南】(1)设置
作者:周邦涛(Timen)
Email:zhoubangtao@gmail.com
转载请注明出处: /article/9909408.html
Email:zhoubangtao@gmail.com
转载请注明出处: /article/9909408.html
本文将分几个博客将最新的Flume 1.5.0 User Guide翻译成中文,并且加入自己的一些理解
1. 介绍
1.1 概览
Apache Flume是一个能够有效的从很多不同的数据源中收集、聚合和移动大量的日志数据到一个中心化数据存储系统中的分布式的,可靠的,可用的系统。Apache Flume的用途不仅限于日志数据的聚合。由于数据源是可以定制化的,Flume可以用来传输大量的event数据,它包括但不限于网络数据、社交媒体生成的数据、email消息和很多任何可能的数据源。
Apache Flume是Apache基金会(Apache Software Foundation)的顶级项目。
目前有两个可用的发行版 —— 0.9.x 和 1.x。
0.9.x版本的文档在http://archive.cloudera.com/cdh/3/flume/UserGuide/中
这个文档适合于1.x版本(主要是1.4.0和1.5.0)。
这里鼓励新用户和老用户使用1.x 发行版,以便利用新架构中提供的性能改进和配置灵活性。
1.2 系统要求
Java运行时环境(JRE)—— Java 1.6或者更高版本(推荐Java 1.7)内存 —— 对source,channel和sink使用的配置有充足的内存
磁盘空间 —— 对channel和sink使用的配置有充足的磁盘空间
目录权限 —— agent所使用目录的读写权限
1.3 架构
1.3.1 数据流模型
一个Flume event是一个数据流单元,它包含一个字节负载和一个可选的字符串属性集合。一个Flume agent是一个持有可以让event从一个外部源流入下一个目的地(也就是一跳,即hop)的组件的JVM进程。一个Flume Source 消费外部源(比如Web服务器)传送给它的event。外部源以一种能够被目标Flume Source识别的数据格式发送event给Flume。例如,一个Avro Flume Source能够用来从Avro客户端或者数据流中其他的Flume Agent的Avro Sink中接收Avro event。可以使用Thrift Source接收来自Thrift Sink或者Flume Thrift Rpc客户端或者使用Flume Thrift协议生成的任何语言的客户端的event,从而实现相似的数据流。当一个Flume
Source接收到一个event,它就会把它存入一个或多个Channel中。Channel是一个消极的存储器,它会一直存储着event直到它被一个Flume Sink消费掉。FileChannel就是一个例子 —— 它建立在本地文件系统之上。Flume Sink将event从Channel中移除,让后把它放到外部的存储系统(比如HDFS,通过Flume HDFS Sink)中或者转发到整个数据流的下一个Flume Agent(也即下一跳)。在Flume Agent中Source和Sink异步的使用Channel中存储的event。
1.3.2 复杂数据流
Flume 允许用户创建一个event到达最终目的地之前通过多个Flume Agent传输的多跳数据流。它还允许扇入和扇出数据流,基于上下文的路由以及对失败跳转的备份路由(fail-over)。1.3.3 可靠性
在每个Flume Agent中event都会被存储在一个Channel中。之后event才会被传输到下一个Agent或者最终的存储系统(例如HDFS)。event只有在下一个Flume Agent的Channel中或者最终的存储系统中存储好才会从当前的Channel中被移除。这也就是Flume中的一步跳转消息传输语义是怎么提供的数据流中端到端的可靠性的。1.3.4 可恢复性
event被存储在Channel中,Channel管理从失败中恢复。Flume支持一个建立在本地文件系统之上的,可持久化的FileChannel。还有一个Memory Channel把event简单存储在一个内存队列中,它速度更快,但是当一个Flume Agent进程死掉之后,依然存储在Memory Channel中的event就不能够恢复了。下篇文章讲述Flume 安装【Flume NG用户指南】(1)设置
作者:周邦涛(Timen)
Email:zhoubangtao@gmail.com
转载请注明出处: /article/9909408.html
相关文章推荐
- 【Flume NG用户指南】(2)配置
- 【Flume NG用户指南】(1)设置
- 【Flume NG用户指南】(2)构造
- 【Flume NG用户指南】(1)设置
- flume 用户指南 - part 3
- jBPM用户指南 第1章 介绍 (转载)
- jBPM jPDL 3.2用户指南:第1章介绍
- flume-ng 整体介绍
- Flume-ng使用指南
- 【Gradle Build Tool 4.1用户指南】Chapter 1. Introduction 第一章、介绍
- flume 用户指南 - part 1
- flume 用户指南 - part 2
- jbpm用户指南翻译:第1章 介绍
- Matplotlib 中文用户指南 4.1 文本介绍
- Apache Flume 1.6.0 用户指南
- Flume 1.5.0 用户指南
- jbpm用户指南翻译:第1章 介绍
- Flume-1.6.0学习笔记(二)flume-ng脚本介绍
- UML用户指南(Chapter2--UML介绍)
- Flume-ng 1.6.0+ Elasticsearch 1.7.2+ Kibana4 日志收集分析系统环境搭建及介绍