为什么要用MapReduce

Posted Foreordination

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么要用MapReduce相关的知识,希望对你有一定的参考价值。

一、为什么要用MapReduce?

  首先MapReduce被广泛应用于日志分析、海量数据的排序、在海量数据中查找特定模式等 场景。而且它非常简单,易于实现且扩展性强。可以通过它编写同事在多台主机上运行的程序,可以使用Python/php/C++等非java类语言编写map或reduce程序。还可以在任何安装Hadoop的集群中运行同样的程序,不论这个集群有多少台主机。

二、MapReduce计算模型

  在Hadoop中,用于执行MapReduce任务的机器角色有两个:

一个是JobTracker,另一个是TaskTracker。JobTracker是用于调度工作的,TaskTracker是用于执行工作的。而一个Hadoop集群中只有一台JobTracker。

三、MapReduce的Job

  在Hadoop中,每个MapReduce任务都被初始化为一个job,每个job又可以分为两个阶段:map阶段和reduce阶段。这两个阶段分别用两个函数来表示,也就是map函数和reduce函数。

  map函数接受<key,list of value>形式的输入,然后对value集合进行处理。

  reduce 函数产生0或1个输出。reduce的输出格式也是<key,value>形式的。

以上是关于为什么要用MapReduce的主要内容,如果未能解决你的问题,请参考以下文章

大数据框架之Hadoop:MapReduceMapReduce框架原理——数据清洗(ETL)

大数据框架之Hadoop:MapReduceMapReduce框架原理——Join多种应用

分布式处理框架 MapReduce

hadoop离线day04--Hadoop MapReduce

技术汇总

大数据技术栈