更新时间:2023-03-17 GMT+08:00
Hive执行insert into语句报错,命令界面报错信息不明
用户问题
客户使用MRS Hive执行一条SQL报错。
问题现象
客户使用MRS Hive执行一条SQL,有如下报错:
图1 使用MRS Hive执行SQL报错
原因分析
- 查看Hiveserver日志,在对应时间点,有如下的报错信息。
图2 Hiveserver日志
- 在如上报错信息中未发现重要信息,但从堆栈中发现metadata字样,怀疑报错是和metastore有关。
图3 堆栈中metadata字样
- 查看metastore日志,发现如下报错。
图4 metastore日志
查看如上错误的上下文,确定是本次执行SQL的报错,在报错信息里面发现如下内容:
Caused by: org.postgresql.util.PSQLException: ERROR: value too long for type character varying(4000)
确认是客户该条SQL对表的操作,所有列的字节长度超过4000的限制,导致SQL执行失败,需要修改该限制。
处理步骤
- 以root用户登录集群任意一个Master节点,并执行su - omm命令切换到omm用户。
- 执行如下命令登录高斯DB。
gsql -p 20051 -d hivemeta -U username -W password
- 执行如下命令修改限制。
alter table PARTITION_PARAMS alter column PARAM_VALUE type varchar(6000);
父主题: 使用Hive