MapReduce 是一个高性能的批处理分布式计算框架,用于对海量数据进行并行分析和处理。与传统数据仓库和分析技术相比,MapReduce 适合处理各种类型的数据,包括结构化、半结构化和非结构化数据。数据量在 TB 和 PB 级别,在这个量级上,传统方法通常已经无法处理数据。MapReduce 将分析任务分为大量的并行 Map 任务和 Reduce 汇总任务两类。Map 任务运行在多个服务器上。目前部署的最大集群有 4000 个服务器。
MapReduce 适合处理的任务
复杂的数据:业务数据不能适合行列的数据库结构。数据可能来源于多种格式:多媒体数据、图像数据、文本数据、实时数据、传感器数据等等。当有新的数据来源时,可能会有新的数据格式的出现。MapReduce 可以存放和分析各种原始数据格式。
超大规模数据:很多公司仅仅应为数据存放成本过高就放弃了很多有价值的数据。新的数据来源使得问题更为严重,新的系统和用户带来比以往更多的数据。Hadoop的创新构架使用低成本的常规服务器储存和处理海量的数据。
新的分析手段:海量复杂数据分析需要使用新的方法。新的算法包括自然语言分析、模式识别等。只有 Hadoop 的构架才能方便高效地使用新的算法来处理和分析海量数据。
MapReduce 框架的核心优势:
1. 高度可扩展,可动态增加/削减计算节点,真正实现弹性计算。
2. 高容错能力,支持任务自动迁移、重试和预测执行,不受计算节点故障影响。
3. 公平调度算法,支持优先级和任务抢占,兼顾长/短任务,有效支持交互式任务。
4. 就近调度算法, 调度任务到最近的数据节点,有效降低网络带宽。
5. 动态灵活的资源分配和调度,达到资源利用最大化,计算节点不会出现闲置和过载的情况;同时支持资源配额管理。
6. 经过大量实际生产环境使用和验证,最大集群规模在 4000 个计算节点。