摘自https://www.zhihu.com/question/26568496/answer/41608400
举一个Hadoop自带的WordCount例子来说明
https://wiki.apache.org/hadoop/WordCount
中文博客说明:
https://www.cnblogs.com/CherishFX/p/4239959.html
Map和Reduce中存在Shuffle(洗牌)过程,也即将统计好的结果按照字母重新排序。广义的Shuffle是指图中在Map和Reuce之间的一系列过程。
Hadoop的局限和不足
但是,MapRecue存在以下局限,使用起来比较困难。
抽象层次低,需要手工编写代码来完成,使用上难以上手。
只提供两个操作,Map和Reduce,表达力欠缺。
一个Job只有Map和Reduce两个阶段(Phase),复杂的计算需要大量的Job完成,Job之间的依赖关系是由开发者自己管理的。
处理逻辑隐藏在代码细节中,没有整体逻辑
中间结果也放在HDFS文件系统中
ReduceTask需要等待所有MapTask都完成后才可以开始
时延高,只适用Batch数据处理,对于交互式数据处理,实时数据处理的支持不够
对于迭代式数据处理性能比较差