从low-level的角度来看hadoop和spark的shuffle有什么差异?
从low-level的角度来看,两者差距不小。Hadoop MapReduce是sort-based,进入combiner()和reduce()的records必须先sort。这样的好处在于combiner()/reduce()可以处理大规模的数据,因为其输入数据可以通过外排得到(mapper对每段数据先做排序,reducer的shuffle对排好序的每段数据做归并)。目前spark选择的是hash-based,通常使用HashMap对shuffle来的数据进行aggregate,不会对数据进行提前排序。如果用户需要进行排序的数据,那么要自己调用类似SortByKey()的操作。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。