假设你想查询某个表的某一列。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 forStage-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.26sec |
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 ...
随机推荐
- MVC使用Dotnet.HighCharts做图表01,区域图表
如果想在MVC中使用图表显示的话,DotNet.HighCharts是不错的选择.DotNet.HighCharts是一个开源的JavaScript图表库,支持线型图表.柱状图标.饼状图标等几十种图标 ...
- MVC自定义路由01-为什么需要自定义路由
本篇体验自定义路由以及了解为什么需要自定义路由. 准备 □ View Models using System.Collections.Generic; namespace MvcApplicati ...
- pytest文档28-重复执行用例(pytest-repeat)
前言 平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来. 自动化运行用例时候,也会出现偶然的bug,可以针对单个用例, ...
- C#中的String与string
在C#中,string 是 System.String 的别名,所以基本上在使用时是没有差别的. 习惯上,我们把字符串当作对象时(有值的对象实体),我们用string. 而我们把它当类时(需要字符串类 ...
- zookeeper 伪分布式安装
1 下载zookeeper安装包 下载地址 http://apache.fayea.com/zookeeper/ 我下载的是zookeeper-3.4.6.tar.gz 2 解压缩 将zookeepe ...
- C语言:通过指针对字符串进行拼接
// // main.c // Pointer_stringcat // // Created by ma c on 15/8/2. // Copyright (c) 2015年 bjsxt. ...
- vue项目ide(vue项目环境搭建)
一.先介绍一下我接下来要做的项目 项目:ide可视化工具 技术应用: Vue2.0(js框架):https://cn.vuejs.org/ ElementUi(饿了吗ui框架基于vue的):http: ...
- HTML-<td> 标签的 valign 属性
<html> <body> <table border="1" style="height:200px"> <tr&g ...
- 以太网帧、IP报文格式
这几天完成一个对比以太网帧的程序(c语言),老师给了以太网帧头部和IP报文头部的结构体,跟实际抓取到的数据包的格式是相同的. 以太网帧头部的数据结构: typedef struct { unsigne ...
- DockerHub基于Github自己主动化构建
Docker Hub上的自己主动化构建 关于自己主动化构建 自己主动化构建是一个特殊的功能,它同意您在 Docker Hub 上使用构建集群,依据指定的 Dockerfile 或者 GitHub . ...