Hive 任务调优实践总结

简介: Hive 任务调优实践总结

一、背景:

最近由于要回刷数据

调优前:

map数:30000 单个map 运行7-8分钟

reduce数:50  单个reduce 运行了20h 还没完成,还经常失败

整体耗时20多个小时还没有完成并且失败了,明显数据倾斜reduce 某个节点跑很久出不来

调优后:

map数:30000  单个map 运行7-8分钟

reduce数:1000   单个reduce 运行了1h左右

原始sql

set mapreduce.input.fileinputformat.split.minsize=4096000000;
set mapreduce.input.fileinputformat.split.maxsize=4096000000;
set mapred.reduce.tasks=1000;    
set hive.exec.reducers.max=1000;
SELECT user_id, county FROM
(
SELECT u as user_id, 
  bi_warehouse_dwd.ip_parse(ip).gb_id as county, 
    row_number() over(partition by u order by dm desc) as rank
FROM udw.tmp_play
WHERE
  dt >= '2022-03-14'
    and bi_warehouse_dwd.ip_parse(ip).gb_id is not null
) a
WHERE rank = 1

优化后sql

set mapreduce.input.fileinputformat.split.minsize=16384000000;
set mapreduce.input.fileinputformat.split.maxsize=16384000000;
set mapred.reduce.tasks=1000;    
set hive.exec.reducers.max=1000;
set mapreduce.reduce.shuffle.memory.limit.percent=0.1;
set mapreduce.reduce.shuffle.input.buffer.percent=0.2;
select a.u,a.county
from (SELECT u, 
  dm,
    bi_warehouse_dwd.ip_parse(ip).gb_id as county
FROM udw.tmp_play
WHERE 
    dt >= '2022-03-14'
  and bi_warehouse_dwd.ip_parse(ip).gb_id is not null) a
  join (
SELECT u, 
    max(dm) as dm
FROM udw.tmp_play
WHERE 
    dt >= '2022-03-14' group by u) b on a.u=b.u and a.dm=b.dm;

参考:

大数据调优经验_

相关文章
|
SQL HIVE
71 Azkaban HIVE脚本任务
71 Azkaban HIVE脚本任务
70 0
|
3月前
|
SQL 数据处理 HIVE
HIVE的数据倾斜调优
hive数据倾斜主要是由shuffle引起的,而引起shuffle的又主要有四种情况,分别为: 1.group by 2.join 3.count(distinct) 4.开窗函数
75 8
|
7月前
|
SQL 关系型数据库 MySQL
Sqoop【付诸实践 01】Sqoop1最新版 MySQL与HDFS\Hive\HBase 核心导入导出案例分享+多个WRAN及Exception问题处理(一篇即可学会在日常工作中使用Sqoop)
【2月更文挑战第9天】Sqoop【付诸实践 01】Sqoop1最新版 MySQL与HDFS\Hive\HBase 核心导入导出案例分享+多个WRAN及Exception问题处理(一篇即可学会在日常工作中使用Sqoop)
303 7
|
7月前
|
SQL 分布式计算 数据处理
【Hive】所有的Hive任务都会有MapReduce的执行吗?
【4月更文挑战第17天】【Hive】所有的Hive任务都会有MapReduce的执行吗?
|
7月前
|
SQL 分布式计算 Java
bigdata-24-Hive调优
bigdata-24-Hive调优
38 0
|
7月前
|
SQL 存储 关系型数据库
Presto【实践 01】Presto查询性能优化(数据存储+SQL优化+无缝替换Hive表+注意事项)及9个实践问题分享
Presto【实践 01】Presto查询性能优化(数据存储+SQL优化+无缝替换Hive表+注意事项)及9个实践问题分享
848 0
|
SQL 数据采集 存储
Hive SQL 迁移 Flink SQL 在快手的实践
快手数据架构工程师张芒,阿里云工程师刘大龙,在 Flink Forward Asia 2022 生产实践专场的分享。
743 1
Hive SQL 迁移 Flink SQL 在快手的实践
|
SQL 分布式计算 Java
阿里云MaxCompute-Hive UDF(Java)迁移上云实践
阿里云MaxCompute-Hive UDF(Java)迁移上云实践
|
SQL 存储 JSON
Hive学习---7、企业级调优(二)
Hive学习---7、企业级调优(二)
|
SQL 缓存 JSON
Hive学习---7、企业级调优(一)
Hive学习---7、企业级调优(一)