信息技术的发展,如今数据存储能力上升到了 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 的算法。
图 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在大数据领域更通用,适用面更广泛。