文档首页/ MapReduce服务 MRS/ 用户指南(安卡拉区域)/ 故障排除/ 集群管理类/ MRS通过beeline执行插入命令的时候出错
更新时间:2024-11-29 GMT+08:00

MRS通过beeline执行插入命令的时候出错

用户问题

MRS通过beeline执行插入命令的时出错

问题现象

在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上设置配置参数进行解决。

  1. 设置以下属性以优化性能(建议在集群级别进行更改)

    • 设置hive.auto.convert.sortmerge.join = true
    • 设置hive.optimize.bucketmapjoin = true
    • 设置hive.optimize.bucketmapjoin.sortedmerge = true

  2. 更改以下内容以调整Tez的资源 。

    • 设置hive.tez.container.size = {与YARN容器相同的大小}
    • 将hive.tez.container.size设置为与YARN容器大小yarn.scheduler.minimum-allocation-mb相同或更小的值(如设置为二分之一或四分之一的值),但不要超过yarn.scheduler.maximum-allocation-mb 。