这篇文章将为大家详细讲解有关shuffle和map shuffle有什么区别,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
普通shuffle结构图:
不同表由不同的map完成,shuffle把条件相等的key分发到reduce task上去执行
join等于是在reduce阶段完成
缺点:
成本高且效率慢,所有的数据都需要shuffle去完成
map shuffle结构图:
mapjoin: join是发生在map阶段,无shuffle
mapjoin使用前提:大表 join 小表(小表有大小限制 maximum;hive元数据判断大小表)
本地的map task读取小表的数据生成HashTable File,然后upload到分布式缓存里.
完成本地map task小表后,启动Mapjoin task作业读取大表数据,每条数据和缓存里数据进行匹配
关于“shuffle和map shuffle有什么区别”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。