初涉MapReduce

了解一件事是什么,可以帮助了解它不是什么。

产生根源

解决大数据分布式存储、运算容错性问题。

原理

MapReduce是一种算法和框架。Hadoop是MapReduce的开源实现。使用MapReduce需要两个函数,一个mapper函数,一个reducer函数,mapper函数将每个数据点作为输入,按排序输出形如(键,值)这样的二元组列表,然后框架会使用定向冒泡排序对输出排序,如果键相同,合并两个二元组。这些二元组会被送往执行reducer函数的机器,reducer函数使用聚合函数对值进行聚合,得到新的值,输出新的(键,新值)列表。

示例图

适用场景

能用MapReduce解决的问题有一个重要特征:数据可以被分布存储到各个计算机上,且算法可以在每台计算机上独立处理数据,即每台计算机之间是相互隔离的,他们不需要知道其他机器在处理什么。MapReduce不适合迭代式的算法,所谓迭代式算法就是,上一次的输出作为下一次的输入,这样的算法。

加深理解,请看这篇博文!

分享