1、数据收集工具/系统产生的背景
1. 1 hadoop的业务流程
一般而言在hadoop的开发过程之中会经历以下几个流程
数据采集 — MAPREDUCE数据清洗 — 数据储存在Hbase — Hive统计和分析 — 存入Hive表中 — 存入Mysql - 展示数据
在这些业务流程之中数据采集是一切业务的来源 ,数据采集的数据的准确性,可靠性往往会对结果产生重要的影响
1.2 大数据的数据特点
大数据的业务数据的特点一般会归纳为:
- 数据量大:一般的企业级数据为1PB=1024TB=1,048,576 GB
- 数据种类多:区别于以往的传统业务数据,大数据的业务数据一般而言,种类较多,个性化突出
- 数据产生的速度快:
- 数据的价值总量大,而相对的价值密度更低
如此一来对于大数据业务而言,如何保证数据的可靠性,数据去重以及保证数据质量是评判是否是一个优秀的数据采集工具的重要标准
2、Flume的概念
官网:http://flume.apache.org/FlumeUserGuide.html 官方文档首页介绍
Apache Flume is a distributed, reliable, and available system for efficiently collecting, aggregating and moving large amounts of log data from many different sources to a centralized data store.
FLume是一个分布式,可靠,高可用的聚合式日志收集系统,他可以从不同的资源库中收集日志存储到集中的数据存储中心(大概是这个意思)
The use of Apache Flume is not only restricted to log data aggregation. Since data sources are customizable, Flume can be used to transport massive quantities of event data including but not limited to network traffic data, social-media-generated data, email messages and pretty much any data source possible.
Flume的用法不仅仅是对日志数据进行聚合收集,由于数据来源是可以定制的,所以他可以用来传输包括但不仅仅是网络传输数据,社交媒体数据,邮件数据等等大部分数据来源
Apache Flume is a top level project at the Apache Software Foundation.
Flume是Apache的顶级项目
3、Flume的核心组件
3.1 Flume的组件的简单介绍
- Agent
Agent组件包括有Source,Channel,Sink和其他组件,他利用这些组件将一个个的event数据从一个节点传输到另外一个节点 - Client
Client组件运行在数据来源节点,作用是将logs文件中的数据包装成一个一个的event数据,发送到一个或者多个Agent中 - Source
Agent用来接收event数据或者将特殊数据包装成event文件 - Channel
连接Source和Sink的通道,类似于缓冲 - Sink
用于接收Channel的来源数据,传输到下一个节点或者将数据永久化存储到硬盘 - event
是flume传输数据的基本单元, 包含Header和byte数组组成,header由多组k-v组成。
3.2 FLume业务流程中,组件的运行顺序
整个Flume的业务流程中数据流事件event始终贯彻其中,当agent外部的数据源产生event事件,source监控并捕捉event事件,将event事件流推入channel通道之中,channel可以看做一个event事件的缓冲区,他保留数据知道sink对数据进行处理完成,sink将数据持久化或者推入 下一个节点当中
4.Flume的安装和部署
Flume的部署大致分为
- 单Agent部署
- 多Agent串联
- 多Agent并行串联
- Agent多路复用
在我的另一篇文章五大工具组件Flume数据采集组件安装和部署有详细介绍
972



被折叠的 条评论
为什么被折叠?



