假设你想查询某个表的某一列。Hive默认是会启用MapReduce Job来完毕这个任务,例如以下:
01 |
hive>
SELECT id, money FROM m limit 10 ; |
02 |
Total
MapReduce jobs = 1 |
03 |
Launching
Job 1 out
of 1 |
04 |
Number
of reduce tasks is set to 0 since
there's no reduce operator |
05 |
Cannot
run job locally: Input Size (= 235105473 )
is larger than |
06 |
hive.exec.mode.local.auto.inputbytes.max
(= 134217728 ) |
07 |
Starting
Job = job_1384246387966_0229, Tracking URL = |
09 |
http: //l-datalogm1.data.cn1:9981/proxy/application_1384246387966_0229/ |
11 |
Kill
Command = /home/q/hadoop- 2.2 . 0 /bin/hadoop
job |
12 |
-kill
job_1384246387966_0229 |
13 |
hadoop
job information for Stage- 1 :
number of mappers: 1 ; |
15 |
2013 - 11 - 13 11 : 35 : 16 , 167 Stage- 1 map
= 0 %,
reduce = 0 % |
16 |
2013 - 11 - 13 11 : 35 : 21 , 327 Stage- 1 map
= 100 %,
reduce = 0 %, |
17 |
Cumulative
CPU 1.26 sec |
18 |
2013 - 11 - 13 11 : 35 : 22 , 377 Stage- 1 map
= 100 %,
reduce = 0 %, |
19 |
Cumulative
CPU 1.26 sec |
20 |
MapReduce
Total cumulative CPU time: 1 seconds 260 msec |
21 |
Ended
Job = job_1384246387966_0229 |
22 |
MapReduce
Jobs Launched: |
23 |
Job 0 :
Map: 1 Cumulative
CPU: 1.26 sec |
24 |
HDFS
Read: 8388865 HDFS
Write: 60 SUCCESS |
25 |
Total
MapReduce CPU Time Spent: 1 seconds 260 msec |
37 |
Time
taken: 16.802 seconds,
Fetched: 10 row(s) |
我们都知道,启用MapReduce Job是会消耗系统开销的。对于这个问题。从Hive0.10.0版本号開始,对于简单的不须要聚合的类似SELECT <col> from <table> LIMIT n语句,不须要起MapReduce job,直接通过Fetch task获取数据,能够通过以下几种方法实现:
方法一:
01 |
hive>
set hive.fetch.task.conversion=more; |
02 |
hive>
SELECT id, money FROM m limit 10 ; |
14 |
Time
taken: 0.138 seconds,
Fetched: 10 row(s) |
上面 set hive.fetch.task.conversion=more;开启了Fetch任务,所以对于上述简单的列查询不在启用MapReduce job!
方法二:
1 |
bin/hive
--hiveconf hive.fetch.task.conversion=more |
方法三:
上面的两种方法都能够开启了Fetch任务,可是都是暂时起作用的;假设你想一直启用这个功能。能够在${HIVE_HOME}/conf/hive-site.xml里面增加下面配置:
02 |
<name>hive.fetch.task.conversion</name> |
05 |
Some
select queries can be converted to single FETCH task |
06 |
minimizing
latency.Currently the query should be single |
07 |
sourced
not having any subquery and should not have |
08 |
any
aggregations or distincts (which incurrs RS), |
09 |
lateral
views and joins. |
10 |
1 .
minimal : SELECT STAR, FILTER on partition columns, LIMIT only |
11 |
2 .
more : SELECT, FILTER, LIMIT only (+TABLESAMPLE, virtual columns) |
这样就能够长期启用Fetch任务了,非常不错吧。也赶紧去试试吧!
- [转]Hive:简单查询不启用Mapreduce job而启用Fetch task
转自:http://www.iteblog.com/archives/831 如果你想查询某个表的某一列,Hive默认是会启用MapReduce Job来完成这个任务,如下: hive> SEL ...
- Hive快捷查询:不启用Mapreduce job启用Fetch task
启用MapReduce Job是会消耗系统开销的.对于这个问题,从Hive0.10.0版本开始,对于简单的不需要聚合的类似SELECT <col> from <table> L ...
- Hive快捷查询:不启用Mapreduce job启用Fetch task三种方式介绍
如果查询表的某一列,Hive中默认会启用MapReduce job来完成这个任务,如下: hive>select id,name from m limit 10;--执行时hive会启用MapR ...
- 011-HQL中级1-Hive快捷查询:不启用Mapreduce job启用Fetch task三种方式介绍
如果你想查询某个表的某一列,Hive默认是会启用MapReduce Job来完成这个任务,如下: hive; Total MapReduce jobs Launching Job out since ...
- Hive 的简单使用及调优参考文档
Hive 的简单使用及调优参考文档 HIVE的使用 命令行界面 使用一下命令查看hive的命令行页面, hive --help --service cli 简化命令为hive –h 会输出下面的这 ...
- Hive[6] HiveQL 查询
6.1 SELECT ... FROM 语句 hive> SELECT name,salary FROM employees; --普通查询 hive>SELECT e.n ...
- Hive将SQL转化为MapReduce的过程
Hive将SQL转化为MapReduce的过程: Antlr定义SQL的语法规则,完成SQL词法,语法解析,将SQL转化为抽象语法树AST Tree 遍历AST Tree,抽象出查询的基本组成单元Qu ...
- T-SQL简单查询语句
简单查询: 1.最简单查询(查所有数据)select * from 表名: 注:* 代表所有列select * from info 2.查询指定列select code,name from info ...
- MySQL数据库6 -查询基础,简单查询,条件查询,对查询结果排序
一.SELECT语句 SELECT COL1,COL2,....COLn FROM TABLE1,TABLE2,....TABLEn [WHERE CONDITIONS] -- 查询条件 [GROUP ...
随机推荐
- Python中函数的参数传递与可变长参数
转自旭东的博客原文 Python中函数的参数传递与可变长参数 Python中传递参数有以下几种类型: (1)像C++一样的默认缺省函数 (2)根据参数名传参数 (3)可变长度参数 示例如下: (1)默 ...
- Nginx HTTP负载均衡/反向代理的相关参数测试
原文地址:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/03/15/1984976.html 测试目的 (1)弄清楚HTTP Upstr ...
- 使用框架帮助Activity规范化
摘要 本文原创,转载请注明地址:http://kymjs.com/code/2015/05/10/01 写给那些在用.想用.还没有用过KJFrame的朋友. KJFrameForAndroid总共分为 ...
- 【微信小程序】在微信开发工具上七牛云的图片可以看到,但是在真机上看不到的原因解决
在开发微信小程序过程中,在微信开发者工具上,七牛云的图片都可以展示出来,但是在真机上,七牛云的图片却展示不出来,也没有报404找不到或者不能加载图片的问题, 必须保证: 1.图片是用image加载的: ...
- Oracle数据库--解决单张表中数据量巨大(大数据、数据量上百万级别,后查询,更新数据等耗时剧增)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/QQ578473688/article/details/54561397 思路1:采用备份表 备份表中 ...
- windows tomcat nginx session(当一台tomcat关闭后)
在windows下作nginx负载均衡测试. nginx的配置文件如下: worker_processes 1; events { worker_connections 1024; } http ...
- utf-8-validation
https://leetcode.com/problems/utf-8-validation/ public class Solution { public boolean validUtf8(int ...
- Mysql之sql语句操作
一.数据库级别操作 1.显示数据库 1 SHOW DATABASES; 默认数据库: mysql - 用户权限相关数据 test - 用于用户测试数据 information_schema - MyS ...
- Proxy 代理模式 动态代理 CGLIB
代理的基本概念 几个英文单词: proxy [ˈprɒksi] n. 代理服务器:代表权:代理人,代替物:委托书: invoke [ɪnˈvəʊk] vt. 乞灵,祈求:提出或授引-以支持或证明:召鬼 ...
- 删除在Godaddy注册的域名,申请退款的全过程
1,删除域名. 登录进 Godaddy ,进入域名管理(Domain Manager),点击你要删除的域名,把要删除的域名前面打上对勾,再点击“delete selected”,确认,稍等一会就删除了 ...