Hadoop生态圈之Flume(一)

Flume是一款由Cloudera提供的高可用、高可靠、分布式日志采集工具,核心是通过source、channel、sink完成数据采集、缓存和传输。本文详细介绍了Flume的运行机制、核心组件、安装部署、简单与复杂架构案例,以及load-balance和failover功能,帮助理解Flume在数据传输中的作用和配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 概述

       Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的软件。

       Flume的核心是把数据从数据源(source)收集过来,再将收集到的数据送到指定的目的地(sink)。为了保证输送的过程一定成功,在送到目的地(sink)之前,会先缓存数据(channel),待数据真正到达目的地(sink)后,flume在删除自己缓存的数据。

2. 运行机制

  • flume 本身是一个 Java 进程,在需要采集数据机器上启动 ---->  agent 进程
  • agent 进程里面包含了:source(采集源)、sink(下沉地)、channel(数据传输通道)
  • 在整个数据的传输的过程中,流动的是event,它是Flume内部数据传输的最基本单元。event将传输的数据进行封装。如果是文本文件,通常是一行记录,event也是事务的基本单位。event从source,流向channel,再到sink,本身为一个字节数组,并可携带headers(头信息)信息。event代表着一个数据的最小完整单元,从外部数据源来,向外部的目的地去。
  • 一个完整的event包括:event headers、event body、event信息,其中event信息就是flume收集到的日记记录。

3. 核心组件

  • source:用于对接各个不同的数据源
  • sink:用于对接各个不同存储数据的目的地(数据下沉地)
  • channel:用于中间临时存储缓存数据

4. 运行架构

4.1 简单架构

只需要部署一个 agent 进程即可(单个 agent 采集数据)

4.2 复杂架构

       多个 agent 之间串联,相当于大家手拉手共同完成数据的采集传输工作,在串联的架构中没有主从之分,大家的地位都是一样的。

5. Flume 的安装部署

  1. 上传安装包到数据源所在节点上,然后解压  tar -zxvf apache-flume-1.8.0-bin.tar.gz,然后进入flume的目录,修改conf下的flume-env.sh,在里面配置JAVA_HOME
  2. 根据数据采集需求配置采集方案,描述在配置文件中(文件名可任意自定义)
  3. 指定采集方案配置文件,在相应的节点上启动flume agent

5.1 测试程序环境

(1)现在 flume 的 conf 目录下新建一个文件


                
Hadoop生态圈个由多个组件组成的开源框架,用于处理分析大规模数据集。以下是些主要的Hadoop生态圈组件: 1. **Hadoop分布式文件系统(HDFS)**:HDFS是Hadoop的核心组件之,负责存储大规模数据集。它通过将数据分块存储在多个节点上,实现了高吞吐量容错性。 2. **MapReduce**:MapReduce是个编程模型计算框架,用于处理生成大规模数据集。它将任务分为两个阶段:Map阶段Reduce阶段,分别用于数据的映射归约。 3. **YARN(Yet Another Resource Negotiator)**:YARN是Hadoop的资源管理框架,负责为应用程序分配资源。它将资源管理作业调度/监控功能分开,从而提高了系统的灵活性可扩展性。 4. **Hive**:Hive是个数据仓库工具,提供了类似SQL的查询语言HiveQL,用于分析查询存储在HDFS中的数据。Hive将SQL查询转换为MapReduce作业,从而简化了数据处理过程。 5. **Pig**:Pig是个高级数据流语言执行框架,用于处理分析大规模数据集。Pig Latin是Pig的语言,提供了类似于SQL的语法,但更灵活,适用于复杂的数据处理任务。 6. **HBase**:HBase是个分布式、面向列的NoSQL数据库,构建在HDFS之上。HBase适用于实时读写访问大规模数据集,提供了高吞吐量低延迟的数据访问。 7. **Zookeeper**:Zookeeper是个分布式协调服务,用于管理Hadoop生态圈中的分布式应用程序。它提供了分布式同步、配置管理、命名服务等功能。 8. **Sqoop**:Sqoop是个数据迁移工具,用于在Hadoop关系型数据库之间传输数据。Sqoop可以将数据从关系型数据库导入到HDFS,或者将数据从HDFS导出到关系型数据库。 9. **Flume**:Flume个分布式、可靠且可用的服务,用于高效地收集、聚合传输大规模日志数据。Flume可以将日志数据从多个源收集到HDFS或其他存储系统中。 10. **Spark**:虽然Spark不是Hadoop的原生组件,但它与Hadoop紧密集成。Spark是个快速、通用的大数据处理引擎,支持内存计算,提供了比MapReduce更高的性能。 这些组件共同构成了Hadoop生态圈,提供了从数据存储、处理、分析到协调管理的完整解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值