Hive之Hive快捷查询(避免Mapruduce查询)

简介: Hive之Hive快捷查询(避免Mapruduce查询)

避免Mapruduce查询

如果你想查询某个表的某一列,Hive默认是会启用MapReduce Job来完成这个任务。
但是,我们可以设置参数来避免Mapruduce查询,下面先介绍一下几个小的知识点,并不Mapruduce查询。

hive (zb_dwd)> select * from  user_id  limit 1;
OK
14510812944   
Time taken: 1.608 seconds, Fetched: 1 row(s)

这种情况下,Hive可以简单地读取user_id对应的存储目录下的文件,然后输出格式化后的内容到控制台。
对于WHERE语句中的过滤条件只是分区字段情况,也是无需MapRuduce过程。

hive (zb_dwd)> select * from  user_id  where date_id='20140512' limit 1;
OK
14510812944 
Time taken: 0.782 seconds, Fetched: 1 row(s)

参数设置

Hive查询的时候,启用MapReduce Job是会消耗系统开销的。对于这个问题,从Hive0.10.0版本开始,对于简单的不需要聚合的类似SELECT

from

###1.
set hive.fetch.task.conversion=more;开启了Fetch任务,所以对于上述简单的列查询不在启用MapReduce job

hive> set hive.fetch.task.conversion=more;
hive> SELECT id, money FROM m limit 10;
OK
1       122
1       185
1       231
1       292
1       316
1       329
1       355
1       356
1       362
1       364
Time taken: 0.138 seconds, Fetched: 10 row(s)

2.

bin/hive设置

bin/hive --hiveconf hive.fetch.task.conversion=more

3.

上面的两种方法都可以开启了Fetch任务,但是都是临时起作用的;如果你想一直启用这个功能,可以在${HIVE_HOME}/conf/hive-site.xml里面加入以下配置

<property>
  <name>hive.fetch.task.conversion</name>
  <value>more</value>
  <description>
    Some select queries can be converted to single FETCH task 
    minimizing latency.Currently the query should be single 
    sourced not having any subquery and should not have
    any aggregations or distincts (which incurrs RS), 
    lateral views and joins.
    1. minimal : SELECT STAR, FILTER on partition columns, LIMIT only
    2. more    : SELECT, FILTER, LIMIT only (+TABLESAMPLE, virtual columns)
  </description>
</property>
相关文章
|
7月前
|
SQL 分布式计算 Hadoop
Hive使用Impala组件查询(1)
Hive使用Impala组件查询(1)
159 0
|
6月前
|
SQL 存储 分布式数据库
【通过Hive清洗、处理和计算原始数据,Hive清洗处理后的结果,将存入Hbase,海量数据随机查询场景从HBase查询数据 】
【通过Hive清洗、处理和计算原始数据,Hive清洗处理后的结果,将存入Hbase,海量数据随机查询场景从HBase查询数据 】
|
SQL HIVE
Hive分区+根据分区查询
Hive分区+根据分区查询
|
4月前
|
SQL 存储 关系型数据库
Presto【实践 01】Presto查询性能优化(数据存储+SQL优化+无缝替换Hive表+注意事项)及9个实践问题分享
Presto【实践 01】Presto查询性能优化(数据存储+SQL优化+无缝替换Hive表+注意事项)及9个实践问题分享
90 0
|
4月前
|
SQL 分布式计算 Java
Hive【Hive(三)查询语句】
Hive【Hive(三)查询语句】
|
7月前
|
SQL 存储 大数据
大数据Hive Join连接查询
大数据Hive Join连接查询
44 0
|
7月前
|
SQL 存储 Java
Hive使用Impala组件查询(2)
Hive使用Impala组件查询(2)
85 0
|
8月前
|
SQL 分布式计算 HIVE
Hive学习---3、DML(Data Manipulation Language)数据操作、查询(二)
Hive学习---3、DML(Data Manipulation Language)数据操作、查询(二)
|
8月前
|
SQL Java HIVE
Hive学习---3、DML(Data Manipulation Language)数据操作、查询(一)
Hive学习---3、DML(Data Manipulation Language)数据操作、查询(一)
|
10月前
|
SQL 资源调度 Java
【Big Data】解决Hive查询出现Java.lang.OutMemoryError.java heap space
解决出现Java.lang.OutMemoryError.java heap space和FAILED:Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
298 0