博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HIVE调优
阅读量:5768 次
发布时间:2019-06-18

本文共 950 字,大约阅读时间需要 3 分钟。

hot3.png

实例1:

crl_1406_orderdetail         665061406840

crl_1406_orders                 326723658130

SQL代码:

select c1.sale_ord_id,c2.sale_ord_id

from crl_1406_orders c1
left outer join crl_1406_orderdetail c2
on c1.sale_ord_id = c2.sale_ord_id;

问题点1:job异常慢,可能reduce为1,这时可以设置reduce数,设置传输格式,并行等

set  mapred.output.compress=true;

set hive.exec.compress.output=true;

set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;

set io.compression.codecs=org.apache.hadoop.io.compress.GzipCodecodec;

#设置20个reduces           set  mapred.reduce.tasks=200;

#设置并行                         set   hive.exec.parallel=true;

问题点2:raduce为1

1 没有使用group by                   2  使用了order by              3 笛卡尔积

问题3:如何欺骗hive分配reduce呢 ?

1 使用聚合函数 ,加 group by                 

2 然后小表放前面,大表一般往后排,从小到大,这样就能欺骗hive分配多个reduce,达到调优的效果

  设置并行对性能要求有点高,所以适度设置并行数量

问题4:并行参数,详设置

当参数为false时,三个job是顺序的执行   set  hive.exec.paralllel=false

当两个子查询的sql并无关系,可以并行的跑    set  hive.exec.parallel=true;

                                                                     hive>set hive.exec.paralllel.thread.number;  (默认并行数为8)

 

 

 转自 :

 

 

 

 

 

 

转载于:https://my.oschina.net/u/1792000/blog/284723

你可能感兴趣的文章
js 经过修改改良的全浏览器支持的软键盘,随机排列
查看>>
Mysql读写分离
查看>>
Oracle 备份与恢复学习笔记(5_1)
查看>>
Oracle 备份与恢复学习笔记(14)
查看>>
分布式配置中心disconf第一部(基本介绍)
查看>>
Scenario 9-Shared Uplink Set with Active/Active uplink,802.3ad(LACP)-Flex-10
查看>>
UML类图中的六种关系
查看>>
探寻Interpolator源码,自定义插值器
查看>>
一致性哈希
查看>>
mysql(待整理)
查看>>
看雪论坛502,出现安全宝?
查看>>
使用PullToRefresh实现下拉刷新和上拉加载
查看>>
mysql
查看>>
2012年电信业八大发展趋势
查看>>
Web日志安全分析工具 v2.0发布
查看>>
JS重载
查看>>
python2和python3同安装在Windows上,切换问题
查看>>
php加速工具xcache的安装与使用(基于LNMP环境)
查看>>
android超链接
查看>>
redhat tomcat
查看>>