key的hash值分布不均匀或者业务本身的特性,造成reduce上的数据量差异过大,导致某些reduce任务进度长时间维持在99%。
1、调优参数
开启combine操作 set hive.map.aggr=true;
开启负载均衡 set hive.groupby.skewindata=true;
2.自定义分区(继承抽象类Partitioner,重写getPartition方法)
3.采用MapJoin,尽量避免ReduceJoin。
key的hash值分布不均匀或者业务本身的特性,造成reduce上的数据量差异过大,导致某些reduce任务进度长时间维持在99%。
1、调优参数
开启combine操作 set hive.map.aggr=true;
开启负载均衡 set hive.groupby.skewindata=true;
2.自定义分区(继承抽象类Partitioner,重写getPartition方法)
3.采用MapJoin,尽量避免ReduceJoin。