一个简单的HQL优化

简介:

线上做Job迁移:从GP迁移到Hadoop,发现有些Job原来跑了2-3分钟到Hadoop上跑到10分钟左右,这样的话会影响到迁移的效果;一个明显的Query如下:

Insertinto table_big partition(dt=today) select xxx from table_hour_incrementala,table_big b where a.id=b.id and b.dt=yesterday;

查看一下grace:

142236756.png


显然瓶颈集中在第二个MAP上,reduceshuffle time执行了207秒,计算了300s不到;这个table_big是个外部表,查看一下文件发现是一个250MB左右的gz文件,原因基础上清楚了,在该Job设置了一下mapred.reduce.tasks=8就可以解决了:

首先是降低每个reduce的计算时间,其次是today分区的文件增加进而增加MAP数,这个要明天才能看到效果了:P

142310482.png

可以看到每个reduce的计算时间已经降到30秒;同时,产生today分区的文件也是830MB的小文件,为接下来增加MAP做好准备


本文转自MIKE老毕 51CTO博客,原文链接:http://blog.51cto.com/boylook/1301072,如需转载请自行联系原作者


相关文章
|
Java 数据库连接
HQL数据查询(Hibernate推荐)
HQL数据查询(Hibernate推荐)
104 0
常用的Hql语句
本文主要讲常用的Hql语句
110 0
|
SQL XML 缓存
HQL的使用
HQL(Hibernate Query Language) 是面向对象的查询语言, 它和 SQL 查询语言有些相似. 在 Hibernate 提供的各种检索方式中, HQL 是使用最广的一种检索方式
275 0
|
SQL 存储 缓存
MySQL查询优化 ——苏坡
MySQL查询优化 ——苏坡
865 20
MySQL查询优化  ——苏坡
|
SQL Java 数据库连接
HQL查询
一、前言        HQL(Hibernate QueryLanguage) 是面向对象的查询语言,它和SQL查询语言有些相似。 二、语法 1、Select/update/delete…… from …… where …… group by …… having ……orde...
1047 0
|
SQL Java 数据库连接
Hibernate查询技术之HQL语句
1、session中的get( )和load( )方法来查询对象。但其查询功能有限。 private void testGet(){ //1.
1350 0

相关课程

更多