《大数据管理概论》一1.4 大数据的处理模式

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
简介:

本节书摘来自华章出版社《大数据管理概论》一书中的第1章,第1.4节,作者 孟小峰,更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.4 大数据的处理模式

无论是工业界还是学术界,都已经广泛使用高级集群编程模型来处理日益增长的数据,如MapReduce。这些系统将分布式编程简化为自动提供位置感知(locality-aware)调度、容错以及负载均衡,使得大量用户能够在商用集群上分析庞大的数据集。
大多数现有的集群计算系统都是基于非循环数据流模型(acyclic data f?low model),从稳定的物理存储(如分布式文件系统)中加载记录,一组确定性操作构成一个有向无环图(Directed Acyclic Graph,DAG),记录被传入这个DAG,然后写回稳定存储。通过这个DAG数据流图,运行时自动完成调度工作及故障恢复。
尽管非循环数据流是一种很强大的抽象方法,但有些应用仍然无法使用这种方式描述,包括:①机器学习和图应用中常用的迭代算法(每一步对数据执行相似的函数);②交互式数据挖掘工具(用户反复查询一个数据子集)。此外基于数据流的架构也不明确支持这种处理,所以需要将数据输出到磁盘,然后在每次查询时重新加载,从而带来较大的开销。
当前大数据分析处理系统的发展趋势主要有两个方向:一种是以Hadoop和MapReduce为代表的批处理(batch processing)系统,另一种是为各种特定应用开发的流处理(stream processing)系统,批处理是先存储后处理(store-then-process),而流处理则是直接处理(straight-through processing)。

1.4.1 批处理

Google公司于2004年提出的MapReduce编程模型是最具代表性的批处理模式。一个完整的MapReduce过程如图1-2所示。


41ed2c304049b9bbedb06af22f3aa1ad0583c05d

MapReduce模型首先将用户的原始数据源进行分块,然后分别交给不同的Map任务去处理。Map任务从输入中解析出键/值对集合,然后对这些集合执行用户自行定义的Map函数得到中间结果,并将该结果写入本地硬盘。Reduce任务从硬盘上读取数据之后,会根据key值进行排序,将具有相同key值的数据组织在一起。最后用户自定义的Reduce函数会作用于这些排好序的结果并输出最终结果。
从MapReduce的处理过程我们可以看出,MapReduce的核心设计思想在于:①将问题分而治之;②把计算推至数据而不是把数据推至计算,有效避免数据传输过程中产生的大量通信开销。MapReduce模型简单,且现实中很多问题都可用MapReduce模型来表示。因此该模型公开后立刻受到极大的关注,并在生物信息学、文本挖掘等领域得到广泛应用。
无论是批处理还是流处理,都是大数据处理的可行思路。大数据的应用类型很多,在实际的大数据处理中,常常并不是简单地只使用其中的某一种,而是将二者结合起来。互联网是大数据最重要的来源之一,很多互联网公司根据处理时间的要求将自己的业务划分为在线(online)、近线(nearline)和离线(off?line),比如著名的职业社交网站LinkedIn。这种划分方式是按处理所耗时间来划分的。其中在线的处理时间一般为秒级,甚至是毫秒级,因此通常采用上面所说的流处理;离线的处理时间可以以天为基本单位,基本采用批处理方式,这种方式可以最大限度地利用系统
I/O;近线的处理时间一般为分钟级或者是小时级,对处理模型并没有特别的要求,可以根据需求灵活选择,但在实际中多采用批处理模式。

1.4.2 流处理

流处理的基本理念是数据的价值会随着时间的流逝而不断减少,因此尽可能快地对最新的数据作出分析并给出结果是所有流数据处理模式的共同目标。需要采用流数据处理的大数据应用场景主要有网页点击数的实时统计、传感器网络和金融中的高频交易等。


b2f366fb1d45bef74e46581fba05d09d53715490

流处理的处理模式将数据视为流,源源不断的数据组成了数据流。当新的数据到来时就立刻处理并返回所需的结果。图1-3是流处理中基本的数据流模型。
数据的实时处理是一个极具挑战性的工作,数据流本身具有持续达到、速度快且规模巨大等特点。为了确保分布式数据流的实时处理,需要对数据流的传输和模型进行说明。①数据流传输。为保证实时、完整且稳定地将数据流传输到处理系统,一般可通过消息队列和网络Socket传输等方法完成,以保证将数据发送至每个物理节点,为数据处理提供保障。利用消息队列的方式进行数据采集和传输是较为常用的一种方法,常见的消息队列产品有Facebook的Scribe、LinkedIn的Kafka和Cloudera的Flume等。
②数据流模型。在查询处理过程中,由于数据流的来源不同,需要针对不同的数据源制订不同的数据样式。一般来讲,通用的数据流管理系统支持关系型数据模型,数据定义语言是基于关系型的原子类型,便于以属性和元组的形式划分和发送数据;针对特殊领域的数据流管理系统,可根据领域数据的特点设计基于对象类型的复合数据类型。
相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
8月前
|
分布式计算 资源调度 Hadoop
Hadoop学习指南:探索大数据时代的重要组成——Hadoop运行模式(下)
Hadoop学习指南:探索大数据时代的重要组成——Hadoop运行模式(下)
|
11天前
|
分布式计算 DataWorks 大数据
MaxCompute产品使用合集之大数据计算MaxCompute如何实现通过离线同步脚本模式
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
8月前
|
分布式计算 资源调度 Hadoop
Hadoop学习指南:探索大数据时代的重要组成——Hadoop运行模式(上)
Hadoop学习指南:探索大数据时代的重要组成——Hadoop运行模式(上)
|
5月前
|
分布式计算 大数据 调度
大数据计算MaxCompute怎么将一个Quota的资源优先供给给标准模式的生产库调度使用?
大数据计算MaxCompute怎么将一个Quota的资源优先供给给标准模式的生产库调度使用?
34 2
|
7月前
|
分布式计算 资源调度 Kubernetes
大数据问题排查系列 - SPARK STANDALONE HA 模式的一个缺陷点与应对方案
大数据问题排查系列 - SPARK STANDALONE HA 模式的一个缺陷点与应对方案
|
8月前
|
分布式计算 资源调度 Java
大数据Spark部署模式DeployMode
大数据Spark部署模式DeployMode
98 0
|
8月前
|
存储 大数据 Java
大数据技术之大数据概论
大数据技术之大数据概论
146 0
|
9月前
|
存储 人工智能 分布式计算
Hadoop基础学习---1、大数据概论
Hadoop基础学习---1、大数据概论
|
11月前
|
存储 大数据
大数据技术之大数据概论
大数据技术之大数据概论
101 0
|
11月前
|
数据采集 缓存 大数据
大数据数据采集的数据采集(收集/聚合)的Flume之数据采集流程的Selector的多路复用模式
在大数据处理和管理中,数据采集是非常重要的一环。为了更加高效地进行数据采集,Flume作为一种流式数据采集工具得到了广泛的应用。其中,Flume的Sink Processor模块是实现数据输出和处理的核心模块之一。本文将介绍Flume中的Selector多路复用模式,讲解其数据采集流程。
113 0

热门文章

最新文章