Hadoop 是什么?
Hadoop是一个提供分布式存储和计算能力的,具有对大型数据集的数据分割和并行计算的能力的平台。由上千台hosts组成的cluster(云)可以达到千兆级的存储和计算能力。
一个Hadoop平台的核心组成有两个:分布式的计算(利用的是一个MapReduce的框架)和分布式的存储(一个分布式的文件系统叫做HDFS),高层次的结构图如下:
HDFS:
MapReduce:
程序员要做的事情就是定义map和reduce函数,map函数用来输出key/value tuples,然后交给reduce函数生成最后的输出。伪代码如下:
map函数有可能产生零个或者多个输出,当条件不满足时,产生零个输出,当实现多路处理的时候,一个input对有可能产生多个output对。