Apache Flume-软件概述|学习笔记

简介: 快速学习 Apache Flume- 软件概述

开发者学堂课程【Flume 基础应用实战-企业全场景解决方案Apache Flume- 软件概述】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/715/detail/12765


Apache Flume- 软件概述


内容介绍:

一、Flume 概述

二、小结

 

一、Flume 概述

1、Flume 产生背景:

Flume 一款在大数据生态圈当中非常给力的辅助软件在介绍 Flume 这款软件的工作性质之前,从它的官网上猜想一下,Flume 这款软件的用途。

打开浏览器,通过域名可以发现 Flume 是 Apache 的一个顶级项目,在首页的左上角就是 Flume 的 logo 图片。这个图片看上去很简单,上面是一段木材,木头下面有一些水花好像是在河面上那这样一个简单的图片跟 Flume 的工作性质会有什么关系?为什么能够表示 Flume?

图片1.png

这时来猜想一个生活中的场景我国北方的大兴安岭森林的深处,有好多的木材需要砍伐运输出来但是当地的铁路包括公路运输不太方便,这时候怎么把木材运输出来?当地百姓非常聪明,他借助河道水流的方式,把木头变成一个绑定起来,扔在河面上,然后木材就被沿着水流顺着河道运输出来。这个说法在当地叫做木排。

图片2.png

如上图:木桶绑在一起,沿着河道就可以流转出来,这个图片背后所包含的一个思想就是木材传递的过程,把木材从一个地方借助河面传递到另外一个地方,那到底这个木排的 logo 跟 Flume 有什么关联?

在大数据体当中,其实可以把它划分为两个阵营,第一个阵营,就是各个地方能够产生数据的地方为数据源,比如爬虫,服务器日志,各种传感器等。另外一个阵营是用来消费使用数据的,比如 spark,甚至数据挖掘机器学习等,这时候一旦涉及到生产数据消费数据的就一定会有一个数据流转的过程,把数据从产生的地方搬到使用的地方去,最后该怎么去完成它?

可以使用现有脚本,甚至自己手动来移动,甚至在不同的地方用移动硬盘来移动这些回答没有任何问题,但是是否能有一款软件可以协助去做日志的采集传递传输的过程而且非常方便好用,这就是 Flume 产生的背景

2、Flume 的定义与用途:

Flume 是一个用来海量日志采集和传输的软件所谓的采集传输,指把数据从一个地方传递到另一个地方,相当于做一个数据搬运的过程Flume 生态圈当中变得非常好,非常给力,可以帮解决很多不必要的工作的时间和麻烦

3、Flume 的三个核心组件:

比如有一个服务器能够产生日志,把它称之为 WebServer,公司部署了一台服务器会在这个服务器的某个路径下产生访问,比如 access.Iog这时还有一个存储系统叫做 HDFS式文件系统,比如有个需求,需要自己每天凌晨一点钟把前一天产生的日志文件进行采集,传递到 HDFS 某个路径下。比如这里,定一个叫 data(/data/weblog)的路径,比下面给出一个日期,20181101,可以用脚本完成,那么如果设计一个类似于 Flume 这样采集搬运的软件,大概需要哪些东西?

图片3.png

(1)首先一定需要一个组件来对接数据源,能够去采集监听接触到数据的东西,这一个用来对接数据源的称为 Source

(2)除此之外,还要把数据搬运到指定的地方,还需要一个组件把数据放到 HDFS上,把数据存放的目的地专业说法叫数据下沉地)叫做 Sink。

3)实际上有以上两个组件就可以了但是想一个更加灵活的场景比如数据源一秒钟能够收集两条数据,而目的地一秒钟只能放一条数据那么随着时间的流逝收集的数据越来越存的越来越慢,会产生数据的挤压积累的过程,为了更好的去缓解两个中间数据挤压的过程这时候中间做一个临时缓存,因此这时候为了方便再设计一个组件叫做 Channel。

有它存在之后 Source 采集的数据放在这里面,然后它从这里面再去读数据把临时缓存数据的地方叫做 Channel 管道这三个组件加起来就是 Flume 的组件核心,Flume 就是靠这三个组件来去完成数据采集搬运的过程,而且大家不用担心它里面到底怎么去开发,怎么去使用大家要做的就是配置各种各样的数据

图片4.png

如上图,表示的非常的生动形象左边是web服务器产生数据的地方,右边 HDFS数据的地方,中间做一个数据搬运的过程,有三个组件,一个用来对接数据,一个用来对接存放的的目的地,一个用于中间做临时的缓存,这三个组件就是 Flume的核心

Flume 可以帮助我们减少很多开发量,而且 Flume 当中满足了大多数常见的数据,Source 不仅能对接日志支持了很多各类型的数据,同样存放的目的地也不仅仅包括 HDFS还可以包括卡夫卡等。因此,官方开发的组件种类越多,功能越强大我们使用起来也越加方便更加强大是它还开放了制定的功能如果它不满足,用户也可以自己定义开发这些东西因此在大数据生态中,一旦涉及到数据采集,搬运传输的过程,使用 Flume 会是非常方便的。

4、Flume 的一个小插曲:

Flume 有个小插曲,通过刚才的名字发现它叫做 Apache Flume,事实上 Flume以前来自于一家叫做 Cloudera 的商业公司。当前 Flume 有两个版本,一个是之前的 Flume 0.9X 版本统称 Flume OG(original generation),一个是 Flumel.X 版本统称 Flume NG(next generation)。由于 Flume NG 经过核心组件、核心配置以及代码架构重构,与 Flume OG 有很大不同,使用时请注意区分。改动的另一原因是将 Flume 纳入 apache 旗下,Cloudera Flume 改名为 Apache Flume它也成为 Apache 的一个顶级项目当别人没有特别强调,一般指的是 Apache Flume。


二、小结

1、定义:

Flume 是一款大数据中海量数据采集传输汇总的软件采集特别指数据流转或者数据搬运的过程也就是把数据从一个存储介质通过 Flume 传递到另一个存储介质

2、核心组件

(1)Source: 用来对接各个不同的数据源。

(2)Sink: 用来对接各个不同存储数据的目的地专业的说法叫数据的下沉地下沉非常生动形象描述数据存放的过程

(3)Channel: 用于临时存储缓数据。

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
27天前
|
消息中间件 存储 分布式计算
【Flume 】Flume 基础概述
【4月更文挑战第4天】【Flume 】Flume 基础概述
|
2月前
|
Shell
Flume【问题记录 01】【at org.apache.flume.node.Application.main(Application.java:xxx) 类问题整理+其他类型问题总结】【避坑指南】
【2月更文挑战第17天】Flume【问题记录 01】【at org.apache.flume.node.Application.main(Application.java:xxx) 类问题整理+其他类型问题总结】【避坑指南】
57 2
|
2月前
|
Java Linux
Flume【环境搭建 01】CentOS Linux release 7.5 安装配置 apache-flume-1.9.0 并验证
【2月更文挑战第16天】Flume【环境搭建 01】CentOS Linux release 7.5 安装配置 apache-flume-1.9.0 并验证
34 0
|
9月前
|
SQL 分布式计算 监控
Flume学习--1、Flume概述、Flume入门、(一)
Flume学习--1、Flume概述、Flume入门、(一)
|
5月前
|
数据采集 消息中间件 缓存
Apache Flume及快速安装
Apache Flume及快速安装
37 0
|
5月前
|
存储 分布式计算 监控
Flume(一)【Flume 概述】
Flume(一)【Flume 概述】
|
5月前
|
消息中间件 存储 分布式计算
Hadoop学习笔记(HDP)-Part.20 安装Flume
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
55 0
Hadoop学习笔记(HDP)-Part.20 安装Flume
|
9月前
|
JSON 监控 Unix
Flume学习--1、Flume概述、Flume入门、(二)
Flume学习--1、Flume概述、Flume入门、(二)
|
Ubuntu Shell Apache
ubuntu apt-get卸载软件无法卸载干净的解决方法(ubuntu卸载apache)
ubuntu apt-get卸载软件无法卸载干净的解决方法(ubuntu卸载apache)
482 0
|
分布式计算 Hadoop
flume报错记录:java.net.ConnectException:拒绝连接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
flume报错记录:java.net.ConnectException:拒绝连接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
555 0
flume报错记录:java.net.ConnectException:拒绝连接; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused

推荐镜像

更多