Hive>分组与计数与笛卡尔积
发布时间
阅读量:
阅读量
文章目录
- Group By
- Count(distinct)
- 笛卡尔积
Group By
- 通常情况下,在Map阶段同一Key的数据会自动分配到一个reducer上"当单个Key的数据量过大时会导致资源分配不均"。
并非所有聚合操作都需要将处理过程完全转移到Reduce阶段完成;许多聚合操作可以在Map阶段进行局部汇总"然后将局部汇总的结果传递至Reduce阶段以获得最终结果"。
1)开启Map端聚合参数设置
(1)是否在Map端进行聚合,默认为True
set hive.map.aggr = true;
(2)在Map端进行聚合操作的条目数目
set hive.groupby.mapaggr.checkinterval = 100000;
(3)有数据倾斜的时候进行负载均衡(默认是false)
set hive.groupby.skewindata = true;
当参数设置为true时,默认情况下查询计划将包含两个MR Job实例。在第一个MR_job运行过程中,map任务会产生随机分配给reduce任务的位置,并对这些位置执行汇总计算并返回中间结果。经过这种设计后的情况是相同的关键码可能会被分散至不同的_reduce节点。第二个mr_job
全部评论 (0)
还没有任何评论哟~
