【Hive】Hive锁机制分析及任务问题处理

本文探讨了在大数据环境下,Hive中的锁机制如何导致读写任务阻塞,详细分析了共享锁和排他锁的工作原理,并提出了通过设置分区锁、关闭锁机制以及调整脚本策略来优化数据仓库输出效率的解决方案。总结了避免锁问题的实践策略,包括使用分区表、谨慎关闭锁机制以及设置重跑任务的sleep间隔。
摘要由CSDN通过智能技术生成

1.背景

在数据仓库开发中,遇到了读取数据任务导致锁表问题,发现是因为补数据或月度大任务跨天运行,此时凌晨定时的写入操作就会被阻塞进入等待状态(如果超过最大等待时间会失败),直到读取任务完成写入任务才可以继续运行,导致当天结果层数据输出延迟。因此分析并总结下锁表机制原理以及解决方式。

2.锁机制及原理分析

Hive 目前主要有两种锁,SHARED(共享锁 S)和 Exclusive(排他锁 X),同时又分表锁与分区锁,分区锁为最小粒度;共享锁 S 和  排他锁 X 它们之间的兼容性矩阵关系如下:

0

解释:

  • 1)表锁与分区锁,分区锁为最小粒度(如果表锁未锁写入的分区,是可以执行写入任务的)
  • 2)查询操作使用共享锁(S锁),共享锁是可以多重、并发使用的(就是说其他查询也可以挂S锁,并发查询不会阻塞修改会阻塞)
  • 3)修改表操作使用独占锁(X锁),它会阻止其他的查询、修改操作
  • 4)S锁和X锁同时出现会出现死锁情况(查询和写入不可同时发生)

以下情况会出发锁,以及它的类型和锁定范围如下:

Hive Command

Lo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值