介绍
Apache的Flume是一个分布式的,质量可靠,可有效地收集,汇总和来自许多不同来源的大量日志数据到集中的数据存储系统。目前,Flume是在Apache项目孵化。
架构
数据流模型
Flume事件被定义为一个数据流的单位,有一个字节的有效载荷和一个可选字符串属性。Flume Agent是一个(JVM进程,连接数据源及数据源的下一个目的地。
Flume处理Web服务器的外部源的事件。外部源发送事件按照Flume源可以识别的格式。 例如:Avror的Flume 源,可以用来接收Avro的客户端或Flume代理。当Flume源接收到一个事件,它存储到一个或多个通道。通道是一个被动的存储,直到被Flume Sink处理。 JDBC的通道就是一个例子 - 它使用文件系统支持数据库。Sink从通道获得事件 ,放到像HDFS的外部库(通过Flume HDFS Sink)或转发到下Flume代理(下一跳)。在代理内部,Source与Sink异步传输通过通道。
复杂流
Flume到达最终目的地之前,允许用户建立多跳流活动,通过多个代理。它还允许扇入和扇出流量,内容路由和备份路由以防失败(故障转移)。
可靠性
在每个代理中都会存在事件,事件在通道中。事件在流中存在,然后传送到下一个代理或终端库(如HDFS)。只有在下一个代理通道或终端库存储才从通道中删除事件。这是一个单跳消息传递语义在Flume中提供端至端的流的可靠性。Flume使用事务的方式,以保证可靠的交付事件。源和Sink的封装在一个事务中存储/检索,分别放置在通道中。这将确保事件集可靠地传递从点到点。在一个多跳的流中,前一跳及源的下一跳的情况下都有其事物的运行,以确保数据的安全存储通道。
可恢复
事件存储在通道中,可以从失败中恢复。Flume支持持久的JDBC通道,这是一个关系数据库支持。还有一个内存通道,它只是存储在内存中的队列,这使得速度更快,但仍留在内存通道不能恢复。
分享到:
相关推荐
Flume NG 的架构主要由三个核心组件组成: 1. **Source**(源):负责从外部系统收集数据,并将其送入 Channel 中。 2. **Channel**(通道):作为所有数据的中转站,存储从 Source 收集的数据直到 Sink 处理。 3. ...
由原来的Flume OG到现在的Flume NG,进行了架构重构,并且现在NG版本完全不兼容原来的OG版本。经过架构重构后,Flume NG更像是一个轻量的小工具,非常简单,容易适应各种方式日志收集,并支持failover和负载均衡。
总结来说,文档提供了关于FlumeNG的深度信息,从架构到关键特性,再到常见用例和存在的问题,这些知识点都是理解和使用FlumeNG的重要基础。通过文档,用户可以获取到有关FlumeNG如何改进原有版本的详细信息,并了解...
Flume NG是其新版本,相比旧版(Flume Classic)提供了更灵活的架构和更丰富的功能。 Flume NG SDK包含了Flume的开发库和相关依赖,使得开发者可以创建自定义的Flume Source、Sink和Channel,这些组件是Flume数据流...
- **架构**:Flume由三个主要组件构成:Sources、Channels和Sinks。Sources负责数据的摄入,Channels作为临时存储,Sinks负责将数据传输到目的地。 - **可靠性**:通过使用可配置的持久化Channels(如File Channel...
而"ng"(next generation)在Flume的上下文中,指的是Flume的第二个主要版本,它引入了新的架构和改进,以提升性能和灵活性。 Flume-ng-sql-source插件是Flume中的一个数据源类型,它允许用户通过自定义SQL查询来...
Flume NG架构的设计使得其具有高度灵活性和容错性。Source能够以不同的方式接收数据,Channel提供了一种安全的数据存储机制,而Sink则负责将数据有效地传送到目的地。尤其值得一提的是,File Channel提供了数据持久...
#### 四、Flume NG 架构 Flume NG的核心组件包括Source、Channel和Sink,它们共同构成了数据从源头到目的地的传输路径。 - **Source**:数据的来源,例如Web服务器日志、数据库记录等。 - **Channel**:临时存储...
Flume NG是Flume的升级版,它引入了新的架构,增强了可扩展性和灵活性。Flume NG的主要任务是收集、聚合和传输各种来源的日志数据,例如Web服务器的访问日志、应用程序的日志输出等,将这些数据流式传输到Hadoop的...
Apache Flume 是一个分布式、可靠且可用的服务,用于有效地收集、聚合和移动大量日志数据。在大数据领域,它常被用于收集来自不...通过其灵活的架构和丰富的功能,Flume使得日志数据的管理和分析变得更加简单和高效。
Flume-ng(Next Generation)是Flume的更新版本,提供更现代的架构和增强的功能。在这个场景中,"ng-sql-source"是一个定制的数据源,它特别设计用来高效地从Oracle数据库中提取数据,并将其实时地发送到Kafka。 **...
### Kafka+FlumeNG+Storm+HBase 架构设计详解 #### 一、概述 在当前的大数据处理场景下,构建一个既能处理历史数据又能实时处理新增数据的架构至关重要。本文将详细介绍如何利用Kafka、FlumeNG、Storm与HBase搭建...
1. **Flume NG 概述**:Flume NG 是 Flume 的新版本,与旧版相比,它提供了更灵活的架构和更好的可扩展性。NG 版本引入了 Channel 和 Sink Processor 等概念,使得数据流动更加可控,同时支持多种数据源和目的地。 ...
**架构** Flume 的数据流模型基于事件(event)的概念,每个事件包含一个字节数据负载和可选的字符串属性集合。Flume 代理(agent)是一个运行在Java虚拟机(JVM)上的进程,它承载了使事件从外部源流动到下一个目标的...
从FlumeOG发展到现在的FlumeNG,其架构进行了重构,新版本完全不兼容旧版。Flume使用Java编写,需要Java 1.6或更高版本才能运行。FlumeNG的版本1.6是Cloudera版本,它更像一个轻量级工具,简便易用,支持故障转移...
Flume的初始版本称为FlumeOG,它为日志收集提供了基础支持,但由于代码架构等问题,Cloudera推出了重构后的FlumeNG版本,后者解决了FlumeOG的缺陷,并提升了系统性能和可维护性。FlumeOG的设计目标着重于可靠性、可...
Flume从1.5.0版本开始,重构了其内部架构,核心组件、配置以及代码架构都进行了重大改动,这个新版本被称为Flume NG(Next Generation),即Flume的新一代版本,用以替代了原来的Flume OG(Original Generation)。...
FlumeNG相比FlumeOG进行了代码精简和架构优化,更符合现代大数据处理的要求,建议使用FlumeNG。 #### 1.4 主要作用 Flume主要用于实时地读取服务器本地磁盘上的数据,并将其写入到Hadoop的分布式文件系统(HDFS)中...