hive执行count和spark执行count结果不一致

九月7个月前技术文章323


【组件版本】hive on mr、spark

【问题现象】hive 执行count语句,结果条数为0,spark执行count语句能正常显示count数
【详细描述】

hive 执行count语句:显示count数为0.

select count(*) from edw_tmp.upcloud_warehouse_table_info_df where dt=20230813;

image.png

如果使用hive执行count语句,底层设置limit 限制条数的条件,可以正常显示出count数:

select count(*) from edw_tmp.upcloud_warehouse_table_info_df where dt=20230813 limit 10;

image.png

两者日志差别在于一个启动了底层mr程序,另一个没有启动。

正常客户是使用的spark进行的建表和查询

spark执行

image.png

spark 客户端thriftserver创建表和hive创建表,涉及到的元数据更新不一致,并且集群底层对count查询进行了优化,默认情况下,Hive会尝试使用表的统计信息(如表的行数、列统计等)来优化查询的执行计划,但是,在某些情况下,统计信息可能不准确或过时,这可能导致Hive做出不恰当的优化决策,影响查询性能和结果。

【解决方法】

方法1:设置如下参数,先禁用查询优化,走底层数据查询。

set hive.compute.query.using.stats=false;

image.png

方法2:

hive使用analyze收集元数据信息后再进行查询。

ANALYZE TABLE  edw_tmp.upcloud_warehouse_table_info_df COMPUTE STATISTICS;

image.png


相关文章

离线安装Kerberos

首先下载kerberos客户端所需rpm包在网站https://pkgs.org/搜索以下3个rpm包:https://pkgs.org/libkadm5krb5-libskrb5-workstati...

如何重塑IT运维核心竞争力?可观测运维这么做!

如何重塑IT运维核心竞争力?可观测运维这么做!

随着云计算、大数据、人工智能等新兴技术的兴起及运用,无论是通讯、金融、教育,还是交通、政府、企业等行业,都得到飞速发展,但在高速发展的同时,各行业巨大的 IT 维护和管理成本也在与日俱增,存在监控工具...

Mac安装Hadoop文档-保姆级操作(二)

Mac安装Hadoop文档-保姆级操作(二)

配置hadoop进入hadoop的目录:cd /opt/homebrew/Cellar/hadoop/3.3.6/libexec/etc/hadoop修改core-site.xml<config...

HDP-Yarn开启CPU调度和隔离

HDP-Yarn开启CPU调度和隔离

进入到ambari主界面 点击yarn 点击config CPU Scheduling and Isolation 设置为enable修改高级配置点击ADVANCED搜索需要修改的配yarn.node...

Hive优化之SQL的优化(三)

Hive优化之SQL的优化(三)

     Hive是大数据领域常用的组件之一,主要是大数据离线数仓的运算,关于Hive的性能调优在日常工作和面试中是经常涉及的一个点,因此掌握一些Hi...

ES运维(一)底层数据存储原理

ES运维(一)底层数据存储原理

1、ES底层数据存储原理架构图Segment工作流程:A、 新的文档在内存中组织B、 每隔一段时间,buffer将会被提交:生成一个新的segment(一个额外的新的倒序索引)并被写到磁盘,同时一个新...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。