Hive
文章平均质量分 93
hive相关笔记
书忆江南
https://github.com/hackeryang
展开
-
Hive与SparkSQL语法差异
解决方案:(1)修改UDF代码,把static相关变量去掉换成非static的变量(2)把SimpleDateFormat设置成ThreadLocal的:(3)使用 joda-time来转换日期时间。原创 2022-10-31 21:45:35 · 4723 阅读 · 0 评论 -
Hive DDL操作出现卡住现象源码分析与解决方法
最近遇到对Hive进行alter table时卡住无后续响应的问题,如下图所示:即使重启Hive Metastore也依然无法解决这个问题,但是,经过排查后基本知道了原因所在,以及可以解决的办法。原创 2022-09-21 12:49:35 · 3909 阅读 · 0 评论 -
Hive Metastore源码新增Thrift API方法
如果工作中使用了m1芯片Mac,则protobuf等底层通信和序列化相关的老版本jar包没有提供osx_aarch64版本(例如hive3依赖的2.5.0版本),本地编译无法通过,需要利用到Linux上的thrift命令行来对hive源码进行编译和自动代码生成。同时还有.cpp、.php等其他语言文件的改动和生成,如果不需要实现其他语言的接口,可以把除.java以外的文件改动都撤回(例如使用。从rpc通信的client和server端角度,目前完善的是server端的代码,如果。...原创 2022-08-02 17:40:31 · 2862 阅读 · 1 评论 -
深入理解ORC文件结构
ORC文件的总体结构如下:orc文件结构对数据的查找和索引本质上是三层过滤:文件级、Stripe级、Row Group级。这样可以把最终实际要扫描读取的数据减少到部分Stripe的部分RowGroup,不用全扫整个文件。也就是先从文件末尾往前读文件元数据,再跳着读Stripe元数据,最终读需要的Stripe中的部分数据。一、文件级为了在SQL查询时更快跳过where等过滤条件中不需要的文件,在文件级别首先通过file tail来记录文件级别的元数据信息。file tail自底向上主要由这三部翻译 2022-02-14 20:09:40 · 7717 阅读 · 2 评论 -
Hive表数据量统计原理和源码分析
在Hive explain获得执行计划时,经常会看到如下图所示的表数据量统计:那么这个数据量,Hive是如何统计出来的呢?一、Data size统计1.1、Hive源码在Hive通过Antlr语法解析器获取到SQL的抽象语法树(AST)并生成校验过元数据的逻辑执行计划后,在优化阶段会使用Statistics统计的规则(rule),如下图所示:在AnnotateWithStatistics这个类中,在对执行计划进行转化(transform)时会调用TableScanStatsRul原创 2021-07-21 15:32:53 · 3640 阅读 · 0 评论