我们的架构设计的思路跟美团大同小异,也是分为agent层,collector层和store层。
下面是我们自己的架构图:
总体架构
数据流图
下面的图描述一条日志消息从客户端产生,经过了怎样的过程最终被消费的。
架构说明
美团的文档中已对这个架构的优越性进行了说明,比如可用性,可靠性和可扩展性,这里就不赘述了。
美团自己在Flume的基础做了一些改进和优化,总结如下:
- 美团的各个Flume节点统一使用了dual channel,美团并没有开源。但官方提供了实现类似功能的spillable-memory-channel,但这只是实验版本,并不推荐在生产环境中使用。
- 美团使用的HDFS Sink做了一些优化,比如设置了一个开关,如果HDFS集群维护时关掉;b/m/s优化减少HDFS的压力;自动创建压缩索引等。我们使用的官方HDFS sink则没有这些功能。
在我们实际使用的过程中酌情考虑这些优化。
其他说明
- 在API中还增加了一个嵌入式的模式,就是说把agent层的Flume进程嵌入到了应用程序进程,这样是为了方便测试,这样在测试阶段就不需要在本地再部署一个Flume进程了。
- 关于对Flume整套系统的监控和报警(接入Zabbix)和性能测试以及各种异常测试在另外的文章叙述。
- 客户端简单封装下即可。此处暂时不介绍了~
后续会有部署指南和API封装等方面的相关介绍。
相关推荐
Source 组件是Flume架构中的第一个组成部分,它负责从各种数据源收集数据。Flume 提供了多种类型的 Source 来适应不同的应用场景: - **Avro Source**:允许通过 Avro 协议远程提交事件。 - **Exec Source**:执行...
基于Flume的分布式日志采集分析系统设计与实现 Flume是一种分布式日志采集系统,可以实时地采集和处理大量日志数据。该系统基于Flume、Elasticsearch和Kibana等技术手段,能够对海量日志数据进行实时采集、处理和...
- **池伟的博客:** 池伟先生在CSDN上发表了多篇关于Flume的详细教程和经验分享,如链接所示,这些文章详细讲解了Flume的安装配置、架构设计以及使用中碰到的问题和解决方案。 ### 知识点总结: 1. **Flume发展历史...
在 Flume 架构中,核心概念是 Agent。Agent 是一个 Java 进程,部署在需要收集日志的服务器上,由三个关键组件构成:Source、Channel 和 Sink。 1. **Source**:Source 负责从各种数据源(如 syslog、tail、HTTP 等...
#### 2.1 Flume架构组件 Flume的核心组件包括Agent、Source、Channel和Sink。 - **Agent**:是Flume中的JVM进程,负责从源头收集数据并将其传递到目的地。每个Agent包含三个主要组成部分:Source、Channel和Sink。 ...
在学习Flume之前,首先应该了解其核心概念和架构设计。 Flume的初始版本称为FlumeOG,它为日志收集提供了基础支持,但由于代码架构等问题,Cloudera推出了重构后的FlumeNG版本,后者解决了FlumeOG的缺陷,并提升了...
### Flume自学手册 #### 一、Flume简介 Flume是Cloudera提供的一款开源、分布式的日志收集系统,具有高度可靠的...以上是对Flume架构及使用方法的一个详细介绍,希望能够帮助大家更好地理解和掌握Flume的相关知识。
1. **Flume架构**: Flume由代理(Agent)、源(Source)、通道(Channel)和接收器(Sink)组成。代理是Flume的基本工作单元,负责配置和运行源、通道和接收器。源负责从数据源获取数据,通道作为临时存储,而接收器...
- Flume 的架构基于事件驱动,每个事件包含一个数据块和元数据。 2. **Flume 组件** - **源(Source)**:数据的生产者,负责从各种来源(如服务器日志、网络套接字、Kafka 等)接收数据。 - **通道(Channel)*...
对于版本1.4.x的用户,本手册提供安装和配置的指南,其中也会包括Flume架构和设计概念的介绍。手册还介绍了在生产环境中高效使用Flume所需的最佳实践。 Flume代理由三个主要组件构成: - Source:这是事件进入代理...
Flume通过简单而灵活的架构实现了数据的高效传输,允许数据源、数据通道和数据接收器之间的动态配置。 在本安装指南中,我们将深入探讨如何使用提供的`flume-1.6.0-bin.tar`安装包来安装和配置Apache Flume。 1. *...
### Flume解析和应用 #### 一、Flume概述 Flume是由Cloudera开发的一款分布式、可靠...以上内容涵盖了Flume的基础概念、架构设计、安装配置以及一些典型的应用场景,希望能帮助读者更好地理解和掌握Flume的相关知识。
在大数据领域,Flume 作为数据流管理工具,它设计的目标是高效、可靠地聚集和传输大量日志数据。Flume 的架构基于分布式系统,能够保证数据的高可用性和容错性。 标题中的"flume安装包"指的是Flume的安装文件,通常...
Flume是Apache Hadoop项目的一部分,专门设计用于高效地收集、聚合和移动大规模日志数据。它的核心架构基于事件流,具备分布式、高可靠性和高可用性。Flume通过agent来实现数据采集,每个agent包含source、sink和...
- **Flume架构**:Flume主要由Agent构成,每个Agent包含Source、Channel和Sink三个核心组件。 - **Source**:Source是数据输入端,能够处理多种格式的日志数据,如avro、thrift、exec等。 - **Sink**:Sink是数据...
在Flume的架构中,数据流动通过三个核心概念:源头(Sources)、通道(Channels)和接收器(Sinks)。这些组件协同工作,确保数据的高效传输。 1. **源头(Sources)**:源头是Flume的数据输入端,负责从各种数据源...
Flume架构中的组件包括Agent、Client、Source、Channel和Sink。Agent是Flume的运行实体,每台机器上可以有一个或多个Agent,每个Agent中可以包含多个Source或Sink。Client负责产生Event,并通过Source接收Event。...