zoukankan      html  css  js  c++  java
  • Hive基础(3)---Fetch Task(转)

     我们在执行hive代码的时候,一条简单的命令大部分都会转换成为mr代码在后台执行,但是有时候我们仅仅只是想获取一部分数据而已,仅仅是获取数据,还需要转化成为mr去执行吗?那个也太浪费时间和内存啦,所以有一个hive的配置如下图所示:

    我们会发现这个属性所对应着两种模式,minimal和more。
          在minimal下,我们执行select * ,limit,filter在一个表所属的分区表上操作,这三种情况都会直接进行数据的拿去,也就是直接把数据从对应的表格拿出来,不用跑mr代码,这样会快点儿运行程序。
          在more模式下,运行select,filter,limit,都是运行数据的fetch,不跑mr应用,所以感觉more模式会更好点儿。
     
          具体的我们看看下面的演示:
          
    [sql] view plain copy
     
     print?在CODE上查看代码片派生到我的代码片
    1. set hive.fetch.task.conversion=minimal  //默认情况下是minimal  
    [sql] view plain copy
     
     print?在CODE上查看代码片派生到我的代码片
    1. select * from  emp  
     
    [html] view plain copy
     
     print?在CODE上查看代码片派生到我的代码片
    1. select  empno   from emp;//mr应用程序  

     
     
    [sql] view plain copy
     
     print?在CODE上查看代码片派生到我的代码片
    1. set hive.fetch.task.conversion=more  
    [html] view plain copy
     
     print?在CODE上查看代码片派生到我的代码片
    1. select  empno   from emp;//mr应用程序  


         可以看到这种情况下。select的查询据变成了数据的fetch而不是mr应用。
  • 相关阅读:
    BUG记录
    .Net HTTP请求的发送方式与分析
    初始token
    VS2017开发安卓应用(Xamarin)
    路由模板和路由特性
    使用signalR创建聊天室。
    C# SessionHelper
    postgres递归查询所有子部门
    centos7备份postgres
    Centos7挂载硬盘
  • 原文地址:https://www.cnblogs.com/Dhouse/p/5825030.html
Copyright © 2011-2022 走看看