问题背景:
在对Hive求count(*)时,发现有些表会启mapreduce计算、返回 结果,比较耗时,有的表1秒之内返回结果
刚开始以为刚刚执行过一次count()后会对结果进行缓存,不用再去跑mapreduce,但经进一步实验发现大多数表每次执行count()操作都会跑mapreduce,于是猜测的结论不成立。
后在必应查找原因,大部分的结果都指向了:‘hive从1.0开始采用Fetch Task, 对于简单查询的自动优化’
具体内容可以参考:http://blog.javachen.com/2014/06/09/fetchtask-in-hive.html

查找思路:
经过了解Fetch Task发现,它对简单查询会直接读取文件,但是不适用于聚合操作,继续查找原因,发现有人提到分区表,是有把分区的信息写入元数据,于是查看hive的mysql元数据表。

问题解决:
在hive的元数据库‘hive’库中有8张跟分区表有关的表,其中partitions保存有分区表的源表、分区id等信息,而在另一张表‘partition_params’表中存有 part_id 和对应的参数值(其中包括行数,行数据大小,总大小等)
答案就很明了了,分区表的count(*)是从元数据表中所取,而并非从所有节点上 map 然后reduce。

Hive分区表count(*)不起mapreduce的真相相关推荐

  1. Spark源码之-CDH6下Spark2.4写Hive分区表异常

    文章目录 一.组件版本 二.问题描述 三.问题分析 四.解决办法 一.组件版本 组件 版本 Hadoop 3.0.0+cdh6.1.1 Hive 2.1.1+cdh6.1.1 spark 2.4.0+ ...

  2. Hive分区表数据压缩

    Hive分区表数据压缩 1.背景 目前公司的Hive分区表采用的TextFile格式存储,占用的存储空间较大,考虑到存储成本,需要对存储的历史数据进行压缩. 2.压缩格式选择 2.1 snappy压缩 ...

  3. Hive分区表:静态分区、动态分区、多重分区介绍

    01 分区表的引入.产生背景 现有6份数据文件,分别记录了<王者荣耀>中6种位置的英雄相关信息.现要求通过建立一张表t_all_hero,把6份文件同时映射加载. create table ...

  4. 大数据快速入门(09):永久弄清楚 Hive 分区表和分桶表的区别

    蛋蛋 和 小智 今天又在"打情骂俏",他们今天在谈论分区表和分桶表,走,我们去听听. 这天,蛋蛋去茶水间倒水,他把水杯放在饮水机下面,打开开关,一直盯着墙上的画在看,灵魂仿佛已经飞 ...

  5. sqoop动态分区导入mysql,sqoop 导入数据到hive分区表(外表,内表) 指定分区 指定数据库 指定表...

    sqoop 导入数据到hive 1.1.导入数据到hive分区表(内表),指定分区 创建hive分区表 –hive-database 指定数据库 –table 指定表 –hive-overwrite ...

  6. hive sqoop 分区导入_利用oozie,执行sqoop action将DB2中的数据导入到hive分区表中

    测试:利用oozie,执行sqoop action将DB2中的数据导入到hive分区表中. 需要注意的地方: 1,要添加hive.metastore.uris这个参数.否则无法将数据加载到hive表中 ...

  7. Spark操作Hive分区表

    前言 Spark操作Hive表可谓是异常的方便和简单,这里根据官网简单的总结一下Spark操作Hive分区表 完美的处理处理方式 // 开启Hive动态分区 spark.sqlContext.setC ...

  8. pyspark操作hive分区表以及.gz.parquet和part-00000文件压缩问题

    文章目录 pyspark 操作hive表 1> `saveAsTable`写入 2> `insertInto`写入 2.1> 问题说明 2.2> 解决办法 3>`save ...

  9. spark写表指定外部表_spark 将dataframe数据写入Hive分区表

    从spark1.2 到spark1.3,spark SQL中的SchemaRDD变为了DataFrame,DataFrame相对于SchemaRDD有了较大改变,同时提供了更多好用且方便的API. D ...

最新文章

  1. 了解Android中的meta-data及其应用
  2. C语言实现数据结构之栈的详解
  3. 航空购票系统源码java_航空售票系统 - WEB源码|JSP源码/Java|源代码 - 源码中国
  4. WPF Tile=” 变量 UI 双向绑定”x:Class=Problem/
  5. C#编码规范(3):常用变量和控件在变量命名中缩写
  6. How to get user parameter settings
  7. 文件I0通用的IO模型
  8. linux firefox 脚本,linux下调整firefox的有用设置(高分辨率下需要)
  9. java加载properties文件的几种方式,java高级面试笔试题
  10. 关于DIV嵌套(二):div嵌套div水平垂直居中
  11. 欧拉函数之和(51nod 1239)
  12. [转载]如何用C#做一个类似于桌面插件的程序
  13. 以色列宣布启动“创世纪2”号登月计划;我国粮食生产实现“十七连丰”丨科技新闻...
  14. 微软office与WPS Office如此相似,微软为什么不告金山侵权呢?
  15. kaggle数据分析实践项目练习——人力资源分析
  16. 美国东部时间和北京时间之间的转换
  17. 红米手机4A超简单刷入开发版获取ROOT超级权限的教程
  18. 我整理了三百多篇论文,分享写文献综述的经验
  19. 大咖汇聚 共谱新篇|元宇宙专委会代表大会成功召开!
  20. 传递闭包+求概率——列项相消法lightoj1321好题

热门文章

  1. mysql 多个实例 备份_Linux下安装Mysql多实例作为数据备份服务器实现多主到一从多实例的备份...
  2. SpringBoot vue图片上传不能立即回显问题解决
  3. Web前端期末大作业--绿色自适应医疗健康医院网页设计(HTML+CSS+JavaScript+)实现
  4. 打开python环境_windows下切换Python运行环境。
  5. java面向对象第一课,定义类,模拟人的行为:吃饭工作休息
  6. 鸿蒙os能超越ios吗,鸿蒙OS对比iOS,华为再次“超越”,流畅度大幅领先苹果!...
  7. java连接并操作redis_java 使用 jedis 连接 redis 并进行简单操作
  8. java消息失败重发_JMS消息在JMS侦听器中重新发送异常
  9. java数组数据结构_Java数据结构之数组
  10. 登录计算机怎么保存用户名,浏览器保存了账号密码怎么查看,教您怎么查看