基础
MapReduce
是一种用于数据处理的编程模型,其本质是并行运行,因此可以将大规模的数据分析任务分发给任何一个拥有足够多机器的数据中心,当然其优势也是处理大规模数据集。
MapReduce
任务过程分为两个处理阶段: map
阶段和 reduce
阶段。每个阶段都是以键值对作为输入和输出,其类型由开发者决定,当然 map
函数和 reduce
函数也是由开发者实现。
Hadoop
是一个分布式计算开源框架,其提供一个分布式文件系统子项目(HDFS
)和支持 MapReduce
分布式计算的软件架构。
在有了大量数据之后,那么该如何进行存储和分析这些数据呢?Hadoop
需要解决的问题如下:
replication
);系统保存数据的副本(replica
),一旦硬件系统出现故障,就立即使用另外保存的副本。MapReduce
提出了一个编程模型,该模型抽象出这些硬盘读/写问题并将其作为对一个数据集(由键值对组成)的计算。