更新时间:2024-09-30 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