Hive快捷查询:不启用Mapreduce job启用Fetch task三种方式介绍

如果查询表的某一列,Hive中默认会启用MapReduce job来完成这个任务,如下:

hive>select id,name from m limit 10;--执行时hive会启用MapReduce job

我们都知道,启用MapReduce Job是会消耗系统开销的。对于这个问题,从Hive0.10.0版本开始,对于简单的不需要聚合的类似

SELECT <col> from <table> LIMIT n语句,不需要起MapReduce job,直接通过Fetch task获取数据,可以通过下面几种方法实现:

方法一:

hive>set hive.fetch.task.conversion=more;--开启fetch任务,就不启用MapReduce job;

hive>select id,name from m limit 10;

方法二:

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

方法三:

上面的两种方法都可以开启了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>

原文地址:https://www.cnblogs.com/camilla/p/8986555.html

时间: 2024-08-29 19:06:57

Hive快捷查询:不启用Mapreduce job启用Fetch task三种方式介绍的相关文章

hive三种方式区别和搭建、HiveServer2环境搭建、HWI环境搭建和beeline环境搭建

说在前面的话 以下三种情况,最好是在3台集群里做,比如,master.slave1.slave2的master和slave1都安装了hive,将master作为服务端,将slave1作为服务端. hive三种方式区别和搭建 Hive中metastore(元数据存储)的三种方式: a)内嵌Derby方式 b)Local方式 c)Remote方式 1.本地derby这种方式是最简单的存储方式,只需要在hive-site.xml做如下配置便可<?xml version="1.0"?&g

联接HIVE SERVER客户端的三种方式

在Hive/bin 目录下输入./hive --service hiveserver 代表hive启动了服务器模式. 和普通模式不同的是,这时hive同时启动了一个名为thrift的服务器. 你不用去研究这个服务器的原理,认为他是一个传递信息的人就好,你可以通过他向hive发送命令,然后hive再把命令送给hadoop. 1.命令行模式: ./hive -h127.0.0.1 -p10000 简单明了,IP和端口. 2.JDBC模式: 名字很糊人的.     private static Str

[转]Hive:简单查询不启用Mapreduce job而启用Fetch task

转自:http://www.iteblog.com/archives/831 如果你想查询某个表的某一列,Hive默认是会启用MapReduce Job来完成这个任务,如下: hive> SELECT id, money FROM m limit 10; Total MapReduce jobs = 1 Launching Job 1 out of 1 Number of reduce tasks is set to 0 since there's no reduce operator Cann

Hive之简单查询不启用MapReduce

假设你想查询某个表的某一列.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: In

Hive学习(八)Hive数据导出三种方式

今天我们再谈谈Hive中的三种不同的数据导出方式. 根据导出的地方不一样,将这些方式分为三种: (1).导出到本地文件系统: (2).导出到HDFS中: (3).导出到Hive的另一个表中. 为了避免单纯的文字,我将一步一步地用命令进行说明. 一.导出到本地文件系统 hive> insert overwrite local directory '/home/wyp/wyp' > select * from wyp; 复制代码 这条HQL的执行需要启用Mapreduce完成,运行完这条语句之后,

Android之——ContentResolver查询的三种方式

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47785491 今天做到一个小项目.查询手机中短信的信息,当然得去系统暴露出来的数据库中去查询了,后来发现有三种方式能够选择,以下一一写出来. 1.方式一 第一种方式,採用 getContentResolver().query()方法在主线程中查询数据.这样的查询方式是不是异步查询的,直接在UI线程中查询数据,代码例如以下: Cursor cursor1 = getContentR

Mybatis模糊查询MySQL中记录的的常用三种方法

mybatis的模糊查询功能使用的很广泛,以MySQL数据库为例(不同的数据库,有些可能不支持) 常用的模糊查询有三种方法: 直接使用 % 拼接字符串,如 '%'#{name}'%' 或 "%"#{name}"%",单引号或双引号都可以. 使用concat(str1,str2)函数拼接 使用mybatis的bind标签 现在有数据库mybatis1中表users中有如下记录: User [id=2, name=bb, phone=13422222222, [emai

mybatis 模糊查询 like的三种方式

第一种 public void selectBykeyWord(String keyword) { String id = "%" + keyword + "%"; String roleType = "%" + keyword + "%"; String roleName = "%" + keyword + "%"; userDao.selectBykeyWord(id,roleNam

Mybatis的select查询的三种方式

1.首先建立一个测试的dao 1 public interface IStudentDao { 2 3 // 根据姓名查询 4 List<Student> selectStudentsByName(String name); 5 } 2.对这个dao进行实现 1 public class StudentDaoImpl implements IStudentDao { 2 3 private SqlSession sqlSession; 4 5 // 根据姓名查询 6 public List&l