大数据计算的四种模型,大数据的五大模型

首页 > 影视动漫 > 作者:YD1662023-10-26 05:38:34

大数据计算的四种模型,大数据的五大模型(1)

01离线批处理

这里所说的批处理指的是大数据离线分布式批处理技术,专用于应对那些一次计算需要输入大量历史数据,并且对实时性要求不高的场景。目前常用的开源批处理组件有MapReduce和Spark,两者都是基于MapReduce计算模型的。

1.MapReduce计算模型

MapReduce是Google提出的分布式计算模型,分为Map阶段和Reduce阶段。在具体开发中,开发者仅实现map()和reduce()两个函数即可实现并行计算。Map阶段负责数据切片,进行并行处理,Reduce阶段负责对Map阶段的计算结果进行汇总。

这里举一个通俗的例子帮助你理解。假如现在有3个人想打一种不需要3~6的扑克牌游戏,需要从一副扑克牌中去掉这些牌,过程描述如下:

第一步,将这一副牌随机分成3份,分给3个人,然后每个人一张张查看手中的牌,遇到3~6的牌就挑出去;

第二步,等所有人都完成上面的步骤后,再将每个人手上剩余的牌收集起来。

在这个过程中,第一步操作属于Map阶段,相当于对每张牌做一次判断(映射、函数运算),是否保留;第二步属于Reduce阶段,将结果汇总。

MapReduce数据流图如图1所示。

大数据计算的四种模型,大数据的五大模型(2)

▲图1MapReduce数据流图

MapReduce处理的数据格式为键-值格式,一个MapReduce作业就是将输入数据按规则分割为一系列固定大小的分片,然后在每一个分片上执行Map任务,Map任务相互独立,并行执行,且会在数据所在节点就近执行;当所有的Map任务执行完成后,通过缓存机制将分散在多个节点的键值相同的数据记录拉取到同一节点,完成之后的Reduce任务,最后将结果输出到指定文件系统,比如HDFS、HBase。基于以上解释和描述,可以看出MapReduce不适合实现需要迭代的计算,如路径搜索。

2.Spark

Spark是基于内存计算的大数据并行计算框架,最初由美国加州大学伯克利分校的AMP实验室于2009年开发,于2010年开源,是目前最主流的批处理框架,替代了MapReduce。

整个Spark项目由四部分组成,包括SparkSQL、Spark Streaming、MLlib、Graphx,如图2所示。其中SparkSQL用于OLAP分析,Streaming用于流式计算的(微批形式),MLlib是Spark的机器学习库,Graphx是图形计算算法库。Spark可在Hadoop YARN、Mesos、Kubernetes上运行,可以访问HDFS、Alluxio、Cassandra、HBase等数据源。

大数据计算的四种模型,大数据的五大模型(3)

▲图2Spark组件

Spark使用先进的DAG(Directed Acyclic Graph,有向无环图)执行引擎,支持中间结果仅存储在内存中,大大减少了IO开销,带来了更高的运算效率,并且利用多线程来执行具体的任务,执行速度比MapReduce快一个量级。

在Spark中,Spark应用程序(Application)在集群上作为独立的进程集运行,由主程序(称为Driver)的SparkContext中的对象协调,一个Application由一个任务控制节点(Driver)和若干个作业(Job)构成。Driver是Spark应用程序main函数运行的地方,负责初始化Spark的上下文环境、划分RDD,并生成DAG,控制着应用程序的整个生命周期。Job执行MapReduce运算,一个Job由多个阶段(Stage)构成,一个阶段包括多个任务(Task),Task是最小的工作单元。在集群环境中,Driver运行在集群的提交机上,Task运行在集群的Worker Node上的Executor中。Executor是运行在Spark集群的Worker Node上的一个进程,负责运行Task,Executor既提供计算环境也提供数据存储能力。在执行过程中,Application是相互隔离的,不会共享数据。Spark集群架构示意图如图3所示。

大数据计算的四种模型,大数据的五大模型(4)

首页 12下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.