信息技术的发展,如今数据存储能力上升到了 TB、PB 级别,企业和政府部门都以各种形式存储了大量的数据,如何快速有效地处理规模大、结构复杂的数据?本文主要介绍大数据的三类应用架构MapReduce、Hadoop、Spark,进行数据处理。

一、MapReduce

MapReduce是大规模数据集的并行运算,是实现关联规则的挖掘算法,MapReduce 设计上具有以下主要的技术特征。

(1)MapReduce 集群的构建完全选用价格便宜、易于扩展的低端商用服务器;

(2)MapReduce 利用集群中的大量数据存储节点同时访问数据,提供高带宽的数据访问和传输。

(3)MapReduce提供一种抽象机制,开发人员可从系统层细节中解放出来,专注于其应用本身的算法设计。

(4)MapReduce并行计算软件框架能有效处理失效节点的检测和恢复。

二、Hadoop

Hadoop大数据应用架构,用于开发数据密集型分布式应用,实现分布式文件系统,用来存储各个计算节点上的数据。

三种大数据应用架构介绍_数据集

图1Hadoop 框架示意图


Hadoop 框架的核心是资源管理,这个实体控制着整个集群计算资源的分配和管理,具体来说就是将各种计算资源资源安排给每个节点管理。

三、Spark

Spark 基于MapReduce算法实现分布式计算,Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce 的算法。

三种大数据应用架构介绍_数据_02

图 2 Spark 框架示意图


(1)Spark与Hadoop的对比

首先,Spark中间数据放到内存里面,可实现迭代运算速度快。

其次,Spark更适合于迭代运算较多的机器学习和数据挖掘运算。

最后,Spark比Hadoop更通用。Spark 提供的数据集操作类型有很多种,Hadoop只提供 Map 和 Reduce 两种操作。

(2)Spark与Hadoop的结合

Spark可以直接对Hadoop进行数据的读写,两者运行同一个集群中,实现共享存储资源与计算,完全兼容。

(2)可用性

Spark通过提供丰富的 API及交互式 Shell来提高可用性。

(4)Spark的适用场景

Spark适用于多次操作特定数据集的应用环境,操作次数越多,获取数据量越大,因此,Spark在大数据领域更通用,适用面更广泛。