一、hive优化
###########
# 究其本质 # hdfs + mapreduce
##########
###########
# 问题所在 #
##########
1、倾斜
1.1、内容倾斜
1.2、group by
1.3、小表 join 大表
2、过多
2.1、join过多导致job过多
2.2、小文件过多
2.3、Mapper或Reducer过多
3、使用不当
3.1、count(distinct)
3.2、join ... where
###########
# 解决方案 #
##########
# 航母发动一次消耗大,一次任务数据量太小资源浪费
# 模型设计
# 整体最优,考虑全局
合理减少表数量:
sqoop : query "select ... join ..."
ods -> dwd insert into ... select ... join ...
数据建模:
【星型】,雪花,星座
维度表(静态数据),事实表(动态数据:谁在什么时间做了什么事情)
维度退化 => 星型
# 充分了解业务,提前设计好预聚合
分层=>轻量聚合
主题:
方向:时间(时间维度表),用户(用户画像),产品(三级分类),...
分析主题 指标
时间
用户
本周内用户的消费总额
本周内连续登陆三天或累计登陆5天的用户
商品
...
...
分区=>避免交换
on... where...
拉链表
压缩=>减少体量
配,压缩格式,表存储格式(是否支持压缩,是否支持切片)
hadoop
hive
spark
# 倾斜:热点数据
内置自动优化
# join: 非大小表
set hive.skewjoin.key=100000; #默认join键对应的记录数超过该值则进行倾斜分析
set hive.optimize.skewjoin=true; #默认false,如果join键倾斜则设为true
set hive.skewjoin.mapjoin.map.tasks=10000; #默认10000,倾斜处理mapper数量上限
set hive.skewjoin.mapjoin.min.split=32M; #默认32M,倾斜最小切片大小
# map join: 大小表
set hive.

本文主要探讨了Hive和Spark在大数据处理中的优化方法。首先,针对Hive的优化,文章可能涉及了查询优化、元数据优化以及分区和桶表的使用等策略。其次,转向Spark优化,内容可能涵盖了executor配置调整、数据缓存、并行度设置等关键点,旨在提升大数据处理的效率和性能。
最低0.47元/天 解锁文章
827

被折叠的 条评论
为什么被折叠?



