文档章节

Hive Fetch Task

rathan0
 rathan0
发布于 2016/01/15 19:16
字数 501
阅读 447
收藏 0
show tables; metastore->>mysql; 
select * from bi.dpods_dp_unsubscribe where hp_statdate = '2015-03-22' limit 10; -》不起job 
select dpid from bi.dpods_dp_unsubscribe where hp_statdate = '2015-03-22' limit 10; ->起job,需要resource manager

如果你想查询某个表的某一列,Hive默认是会启用MapReduce Job来完成这个任务,如下: 我们都知道,启用MapReduce Job是会消耗系统开销的。对于这个问题,从Hive0.10.0版本开始,对于简单的不需要聚合的类似(SELECT columns from table_name)不需要起MapReduce job,直接通过Fetch task获取数据,可以通过设置如下属性实现:

set hive.fetch.task.conversion=more; // 简单查询就不走map/reduce了,直接读取hdfs文件进行filter过滤。但是有数据量大时要等很长时间,且没有任何返回。
set hive.fetch.task.conversion=minimal; // 任何简单select都会走map/reduce;

开启了Fetch任务,所以对于上述简单的列查询不在启用MapReduce job。上面的两种方法都可以开启了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>

meta store查询:

show tables;
desc database finance;

PS:

发现hive就可以启动起来了,其实我们只需要把hive理解为几个部分即可:metastore、thrift server和剩下的hive,这几个部分都是可以分开部署的,放在不同的服务器上,这样的设计增加了hive的ha和可扩展性 但是分开部署会牺牲很大的可维护性,也增加了运维的复杂性,所以一般还是把元数据留着mysql中其他的部分放在一个jvm中。 hive也是个cs结构的东西 thrift是负责client和server通信的。 


© 著作权归作者所有

rathan0
粉丝 5
博文 66
码字总数 36282
作品 0
程序员
私信 提问
简单查询设置Fetch task 来不启用Mapreduce job的三种方式

简单查询的Fetch task 功能:从Hive0.10.0版本开始支持 配置方式: set.hive.fetch.task.conversion=more; ---开启了Fetch任务,所以对于上述简单的列查询不在启用MapReduce job! hive --h...

八戒_o
2016/03/30
17
0
Hive参数设置的方法

参数声明:在hive的CTL环境中设置(临时) 比如:set hive.fetch.task.conversion=more; 2.命令行设置:使用hadoop命令设置(临时)hive --hiveconf hive.fetch.task.conversion=more; 3.配置...

qhaiyan
2016/12/03
2
0
Hive性能调优

1.limit限制调整--因为使用limit语句时候,是先执行整个查询语句,然后再返回部分结果的set hive.limit.optimize.enable=true;set hive.limit.row.max.size=10000;set hive.limit.optimize.l...

qhaiyan
2016/12/03
4
0
Hive运维 — hive-site文件

hive设置的优先级(从高到低): Hive set命令。 命令行选择 -hiveconf hive-site.xml hive-default.xml hadoop-site.xml(或者是core-site.xml hdfs-site.xml mapred-site.xml) hadoop-defau......

片刻
2015/11/18
0
0
hive性能调优

limit限制调整 --因为使用limit语句时候,是先执行整个查询语句,然后再返回部分结果的 set hive.limit.optimize.enable=true; set hive.limit.row.max.size=10000; set hive.limit.optimiz...

aibati2008
2016/04/20
106
0

没有更多内容

加载失败,请刷新页面

加载更多

Command模式

https://www.cnblogs.com/devinzhang/archive/2012/01/06/2315235.html

南桥北木
52分钟前
1
0
由于PostgreSQL9.x二进制输出格式默认值改变导致的读取图片错误

今天从社区邮件看到一个这样的问题,感觉很有意思,在这分享给大家~具体如下: 问题现象: 作者有一个很老的Java应用,当时后端采用的PostgreSQL数据库版本为8.x,该系统除了正常的数据增删...

闻术苑
今天
2
0
导入sql时出现Invalid default value for 'create_time'报错处理方法

当运行SQL会出现:[Err] 1067 - Invalid default value for 'create_time',是因为Mysql版本不同,如果版本不 < 5.6请去的话报错的处理方法如下: 方法 :alter table table_name modify cre......

writeademo
今天
1
0
对ssm(spring,springmvc,mybatis)的了解总结

ssm框架现在是java web开发的三个主流框架 ,其实严格来算只算是两个框架,因为springmvc属于spring框架 ,是spring的一个mvc子框架 那么我们下面就来了解一下三大框架把 一 .Spring spring...

咸鱼-李y
今天
2
0
聊聊Elasticsearch的FsProbe

序 本文主要研究一下Elasticsearch的FsProbe FsProbe elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/monitor/fs/FsProbe.java public class FsProbe { private static f......

go4it
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部