hive0.11升级问题小结

简介:
为了兼容spark,并使用hive的kerberos和hiveserver2功能和一些窗口函数,线上的hive由0.10升级至0.11,遇到几个问题,简单记录下:
1.分区schemal的问题
具体见:

2.部分函数运行
unix_timestamp

在参数为null时会报错:

1
2
3
hive>  select  unix_timestamp( null from  default .dual limit 5;
FAILED: SemanticException [Error 10014]: Line 1:7 Wrong arguments
'TOK_NULL' : The  function  UNIX_TIMESTAMP takes  only  string  or  timestamp  types
变通的方法时通过case when做处理:
1
( case  when  ddtime  is  null  then  null  else  unix_timestamp(ddtime)  end )
3. map join
关于map join的理解:
hive0.11默认的convert map join是开启的,在大部分的情况下会减少job的运行时间,不过有一些bug
1)null pointer的bug
报错信息:
1
2
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException:
java.lang.NullPointerException
2)字段hash值一样时出现的乱序问题
报错:
1
2
3
java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException
: Hive Runtime Error  while  processing row [Error getting row data with
exception java.lang.ArrayIndexOutOfBoundsException: xxxx
bugid:
https://issues.apache.org/jira/browse/HIVE-5256
https://issues.apache.org/jira/browse/HIVE-5056

一种解决方法时 set hive.auto.convert.join=false;这种方法在数据存在倾斜时(reduce阶段长时间处在99%)会有性能的问题。
不过官方有对应的patch,打上就可以fix.

4.double精度问题
hive double做运算,计算结果不精确,这其实是旧版本的hive的一个bug
bugid:
https://issues.apache.org/jira/browse/HIVE-2693

在hive0.11引入了decimal的类型,如果是double的类型可以通过cast(xxx as decimal)来解决

1
select  cast(2.3333 as decimal)+cast(12.55 as decimal) from dual;


以后遇到问题再来补充。



本文转自菜菜光 51CTO博客,原文链接:http://blog.51cto.com/caiguangguang/1393670,如需转载请自行联系原作者

相关文章
|
SQL 消息中间件 关系型数据库
iceberg实践
iceberg实践
|
数据可视化 数据挖掘
基于Bert的文本聚类工具:BERTopic
基于Bert的文本聚类工具:BERTopic
2272 0
基于Bert的文本聚类工具:BERTopic
|
SQL 人工智能 自然语言处理
【AI 技术分享】大模型与数据检索的探索实践
本文基于2024年9月27日与阿里云合办的线下沙龙分享整理而成,探讨如何通过大语言模型(LLM)让数据访问更简单。随着企业数据量增长,传统数据访问方式已难以满足需求。LLM结合自然语言检索,使非技术用户能直接用自然语言与数据交互,降低数据访问门槛。文章介绍了NL2SQL技术,通过LLM理解自然语言问题并生成SQL查询,实现高效数据获取。同时,探讨了AskTable架构及其在实际应用中的挑战与解决方案。
960 5
【AI 技术分享】大模型与数据检索的探索实践
|
存储 物联网 数据库
App Inventor 2 低功耗蓝牙 BlueToothLE 拓展中文文档(完整翻译加强版)
低功耗蓝牙,也称为蓝牙LE 或简称 BLE,是一种类似于经典蓝牙的新通信协议,不同之处在于它旨在消耗更少的功耗和成本,同时保持同等的功能。 因此,低功耗蓝牙是与耗电资源有限的物联网设备进行通信的首选。
639 0
|
Rust Shell 索引
使用阿里云镜像加速Rust与Cargo安装及更新
使用阿里云镜像加速Rust与Cargo安装及更新
10363 2
|
存储 关系型数据库 MySQL
MySQL数据库——存储过程-if条件判断、参数、case(介绍、用法、案例)
MySQL数据库——存储过程-if条件判断、参数、case(介绍、用法、案例)
1056 0
|
SQL 存储 大数据
【拿走不谢】大数据高效查询神器--bitmap
【拿走不谢】大数据高效查询神器--bitmap
|
SQL 存储 分布式计算
如何构建标签画像工程体系及实现方案
本文将按总分的结构进行展开:首先对标签画像的基本概念做简单的说明;其次会从业务需求的角度出发,阐述如何构建一个可用的最小标签画像系统单元;而后会以这个最小单元为基础,对部分重点模块进行扩展介绍;最后进行总结,并对文中未涉及的发展方向简要说明。
65429 1
如何构建标签画像工程体系及实现方案
|
SQL 分布式计算 Hadoop
配置Hive使用Spark执行引擎
在Hive中,可以通过配置来指定使用不同的执行引擎。Hive执行引擎包括:默认MR、tez、spark。
926 0
|
分布式计算 并行计算 NoSQL
(超详细)0基础利用python调用Hadoop,云计算3
(超详细)0基础利用python调用Hadoop,云计算
325 0