hive_spark_优化

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

一、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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值