欢迎投稿

今日深度:

hive优化,

hive优化,


1、环境方面:服务器配置、容器的配置、环境搭建
2、具体的软件配置参数:
3、代码级别的优化:

目录

1、环境方面:服务器配置、容器的配置、环境搭建2、具体的软件配置参数:3、代码级别的优化:

2、join

3、limit的优化:

4、本地模式:

5、并行执行:

6、严格模式:

7、map和reduce 个数:

8、配置jvm重用:

9、数据倾斜:

10、索引

11、视图

12、分区本身就是hive的一种优化

13、分桶


1、explain和explain extended
explain extended select * from text1;

explain:只对hql语句进行解释。
explain extended:对hql语句进行解释,以及抽象表达式树的生成。


stage:相当于一个job,一个stage可以是limit、一个子查询、也是group by 等。

hive默认一次只执行一个stage,但是如果stage之间没有相互依赖,可以并行执行。
任务越复杂,hql代码复杂度越高,stage越多,运行时间就越长。

2、join


hive的查询永远是小表(结果集)驱动大表(结果集)。
hive的on的条件只支持等值连接。
注意hive是否配置普通join转换成map端的join、以及mapjoin小表文件大小的阀值。

3、limit的优化:


set hive.limit.row.max.size =100000
set hive.limit.optimize.limit.file=10
set hive.limit.optimize.enable=false(如果limit比较多的时候建议开启)
set hive.limit.optimize.fetch.max=50000

4、本地模式:


set hive.exec.mode.local.auto=false/true(建议开启)
set hive.exec.mode.local.auto.inputbytes.max=134217728
set hive.exec.mode.local.auto.input.files.max=4

5、并行执行:


set hive.exec.parallel = false/true(建议开启)
set hive.exec.parallel.thread.number=8

6、严格模式:


hive.mapred.mode=nonstrict/strict(建议开启)

7、map和reduce 个数:


不是个数越多就越好,也不是越少越好。
将小文件合并处理(输入类设置成:CombineTextInputFormat)(在文件级别就将小文件合并成大文件,
再上传到hdfs上)
mapred.max.split.size=256000000   
mapred.min.split.size.per.node=1
mapred.min.split.size.per.rack=1
hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat

手动设置:
set mapred.map.tasks=2
reduce的个数:自动决定和手动设置
set mapred.reduce.tasks=-1

set hive.exec.reducers.max=1009

8、配置jvm重用:


mapreduce.job.jvm.numtasks=1   ###

mapred.job.reuse.jvm.num.tasks=1

9、数据倾斜:


由于key分布不均衡造成的数据往一个方向偏移的现象。
本身的数据倾斜。
join语句容易造成
count(distinct col)
group by 

set hive.map.aggr=true
set hive.groupby.skewindata=false/true(建议开启)
set hive.optimize.skewjoin=false/true

10、索引

11、视图

12、分区本身就是hive的一种优化

13、分桶


mysql用自己的存储引擎,hive使用的hdfs来存储。hbase
mysql使用自己的执行引擎,而hive使用的是mapreduce来执行。
mysql使用环境几乎没有限制,hive是基于hadoop的。
mysql的低延迟,hive是高延迟。
mysql的handle的数据量较小,而hive的handle数据量较大。
mysql的可扩展性较低,而hive的扩展性较高。
mysql的数据存储格式要求严格,而hive对数据格式不做严格要求。
mysql可以允许局部数据插入、更新、删除等,而hive不支持局部数据的操作。

 

www.htsjk.Com true http://www.htsjk.com/hive/40617.html NewsArticle hive优化, 1、环境方面:服务器配置、容器的配置、环境搭建 2、具体的软件配置参数: 3、代码级别的优化: 目录 1、环境方面:服务器配置、容器的配置、环境搭建2、具体的软件配...
相关文章
    暂无相关文章
评论暂时关闭