更新时间:2023-11-10 GMT+08:00
通过Hive beeline命令行执行插入命令的时候报错
问题现象
在MRS Hive的beeline中执行insert into插入语句时系统报以下错误:
Mapping run in Tez on Hive transactional table fails when data volume is high with error: "org.apache.hadoop.hive.ql.lockmgr.LockException Reason: Transaction... already aborted, Hive SQL state [42000]."
原因分析
对于Join操作,由于集群配置不理想和Tez资源设置不合理导致该问题。
处理步骤
可以在beeline上设置配置参数进行解决。
- 设置以下属性以优化性能(建议在集群级别进行更改)
- 设置hive.auto.convert.sortmerge.join = true
- 设置hive.optimize.bucketmapjoin = true
- 设置hive.optimize.bucketmapjoin.sortedmerge = true
- 更改以下内容以调整Tez的资源。
- 设置hive.tez.container.size = {与YARN容器相同的大小}
- 将hive.tez.container.size设置为与YARN容器大小“yarn.scheduler.minimum-allocation-mb”相同或更小的值(例如设置为二分之一或四分之一的值),但不要超过“yarn.scheduler.maximum-allocation-mb”参数值。
父主题: 集群管理类