2.1 批处理计算框架概述
在介绍Hadoop之前,本节首先介绍一下计算框架和批处理的概念。
2.1.1 计算框架
计算框架是一种抽象的、提供相应的通用功能供用户编写代码以实现具体功能的面向应用的软件。大数据计算框架是面向大数据的计算框架,用户可以利用它轻松地编写面向大数据的分布式程序。
计算框架的优势在于无须重复编写代码,从而提高开发效率、降低开发成本和运维难度、提高代码执行的可靠性等。可以说,大数据计算系统的开发过程离不开大数据计算框架。
2004年前后,Google提出了分布式文件系统GFS、并行计算模型MapReduce、非关系数据存储系统BigTable,以及针对大数据分布式处理的可重用方案,即大数据计算框架。在Google的启发下,Yahoo的工程师Doug Cutting和Mike Cafarella开发了Hadoop计算框架。在借鉴和改进Hadoop的基础上,先后诞生了数十种适用于分布式环境的大数据计算框架,本书介绍的Spark、Storm都是计算框架,GraphX也可以看作一种计算框架。广义来说,数据库管理系统也可以看作一种计算框架。
2.1.2 批处理
批处理能够操作大规模静态数据集,并在计算完成后返回结果。批处理模式中使用的数据集通常具有下列特征。
❑ 有界:批处理数据集代表数据的有限集合。
❑ 持久:数据通常存储在某种类型的持久存储中。
❑ 大量:批处理操作是处理海量数据集的唯一方法。
批处理适合需要访问全套记录或者对历史数据进行分析才能完成的计算工作,不适合对处理时间要求较高的场合。例如,在工业数据分析系统中,设计阶段的工艺优化、流程优化、能效优化,供销阶段的成本优化,销售阶段的需求发现、产量预测,售后阶段的备品供应等,这些都涉及基于大规模历史数据的决策,并且对实时性没有要求,适合应用批处理。
本章介绍的Hadoop和第4章介绍的Spark都属于批处理框架。