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

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 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等。
②数据流模型。在查询处理过程中,由于数据流的来源不同,需要针对不同的数据源制订不同的数据样式。一般来讲,通用的数据流管理系统支持关系型数据模型,数据定义语言是基于关系型的原子类型,便于以属性和元组的形式划分和发送数据;针对特殊领域的数据流管理系统,可根据领域数据的特点设计基于对象类型的复合数据类型。
相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
1月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
133 6
|
1月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
62 2
|
1月前
|
消息中间件 监控 数据可视化
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
47 2
|
1月前
|
分布式计算 资源调度 大数据
大数据-110 Flink 安装部署 下载解压配置 Standalone模式启动 打包依赖(一)
大数据-110 Flink 安装部署 下载解压配置 Standalone模式启动 打包依赖(一)
48 0
|
1月前
|
分布式计算 资源调度 大数据
大数据-110 Flink 安装部署 下载解压配置 Standalone模式启动 打包依赖(二)
大数据-110 Flink 安装部署 下载解压配置 Standalone模式启动 打包依赖(二)
65 0
|
3月前
|
分布式计算 资源调度 大数据
【决战大数据之巅】:Spark Standalone VS YARN —— 揭秘两大部署模式的恩怨情仇与终极对决!
【8月更文挑战第7天】随着大数据需求的增长,Apache Spark 成为关键框架。本文对比了常见的 Spark Standalone 与 YARN 部署模式。Standalone 作为自带的轻量级集群管理服务,易于设置,适用于小规模或独立部署;而 YARN 作为 Hadoop 的资源管理系统,支持资源的统一管理和调度,更适合大规模生产环境及多框架集成。我们将通过示例代码展示如何在这两种模式下运行 Spark 应用程序。
237 3
|
10天前
|
SQL 存储 算法
基于对象 - 事件模式的数据计算问题
基于对象-事件模式的数据计算是商业中最常见的数据分析任务之一。对象如用户、账号、商品等,通过唯一ID记录其相关事件,如操作日志、交易记录等。这种模式下的统计任务包括无序计算(如交易次数、通话时长)和有序计算(如漏斗分析、连续交易检测)。尽管SQL在处理无序计算时表现尚可,但在有序计算中却显得力不从心,主要原因是其对跨行记录运算的支持较弱,且大表JOIN和大结果集GROUP BY的性能较差。相比之下,SPL语言通过强化离散性和有序集合的支持,能够高效地处理这类计算任务,避免了大表JOIN和复杂的GROUP BY操作,从而显著提升了计算效率。
|
1月前
|
存储 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
38 1
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
|
18天前
|
SQL 存储 算法
基于对象 - 事件模式的数据计算问题
基于对象-事件模式的数据计算是商业中最常见的数据分析任务之一。这种模式涉及对象(如用户、账户、商品等)及其相关的事件记录,通过这些事件数据可以进行各种统计分析,如漏斗分析、交易次数统计等。然而,SQL 在处理这类任务时表现不佳,特别是在有序计算方面。SPL 作为一种强化离散性和有序集合的语言,能够高效地处理这类计算,避免了大表 JOIN 和大结果集 GROUP BY 的性能瓶颈。通过按 ID 排序和分步计算,SPL 能够显著提高计算效率,并支持实时数据处理。
|
1月前
|
分布式计算 大数据 分布式数据库
大数据-158 Apache Kylin 安装配置详解 集群模式启动(一)
大数据-158 Apache Kylin 安装配置详解 集群模式启动(一)
36 5

热门文章

最新文章

下一篇
无影云桌面