Hive表锁机制原理以及各种场景的解决方案

这篇具有很好参考价值的文章主要介绍了Hive表锁机制原理以及各种场景的解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

hive 锁机制(S锁,X锁) 是由hive的事务管理器出发,锁的原理是 一张表简称A表,我们对A表做查询操作的时候,就会获取到 A表的S锁(共享锁), 如果对A表做alter 等其他操作就会获取A表的X锁(排他锁) 如果A表同时拥有S锁和X锁,A表就会死锁。死锁后的现象就是做drop truncate 等操作会很慢一直运行中,因为这时候操作已经阻塞了。

解决方法:

        1. 查看被锁的表是否被其他任务所引用,比如我们一个任务是对A表做查询,另一个任务在         对A表做其他操作比如写入,修改表结构等 就会导致表被锁。如果有就把其中一个任务kill掉。

        2. 先用 show locks 命令查看被锁的表 然后用 unlock table tableName 进行解锁,也可以对分区 解锁 unlock table tableName partition(dt="yyyyMMdd")。 hive表锁机制针对分区表 有表锁和表分区锁,表分区锁是细粒度的锁。

#查看HIVE表是否被锁
SHOW LOCKS <TABLE_NAME>; 
#查看哪一个SQL锁了HIVE表 
SHOW LOCKS <TABLE_NAME> EXTENDED;
#查看HIVE表分区是否被锁 
SHOW LOCKS <TABLE_NAME> PARTITION (<PARTITION_DESC>); 
#查看哪一个SQL锁了HIVE表分区
SHOW LOCKS <TABLE_NAME> PARTITION (<PARTITION_DESC>) EXTENDED;

       3.  set hive.support.concurrency=false; 默认为true 这个参数可以让hive在当前session关闭锁机制,但是全局还是有表锁机制的问题,也可以把参数写到hive的配置文件里,那么hive的表锁机制就一直关闭了。

       4.  最暴力的方法,现在hive的元数据服务基本都存储在MySql,在MySql 的hive 库 可以找到一张 hive_locks表 把里面的数据truncate 也可以,但是治标不治本,而且Hive源码也有自动定期清理的线程不过默认是关的 可以在配置文件配置开启,这个方法注意不要把hive_locks表删了,不然启动hive服务会有问题,truncate就行。

         5. 在Hive3.X 版本 建表不指定存储格式的话 默认是orc事务表,可以用parquet格式存储 就不会受到表锁机制的问题,不过orc存储的文件更小 并且支持 ACID/DELETE/UPDATE。文章来源地址https://www.toymoban.com/news/detail-786534.html

到了这里,关于Hive表锁机制原理以及各种场景的解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hive的堵塞问题和表锁问题原因查找

    Hive的堵塞问题可能是由多种原因引起的。下面是一些可能的原因和解决方法: 数据倾斜:如果某个字段的值分布不均匀,可能会导致某些任务处理的数据量过大,从而造成堵塞。可以通过使用分桶或者使用JOIN操作时进行数据倾斜处理来解决这个问题。 资源不足:如果集群资

    2024年02月14日
    浏览(25)
  • 机器学习算法原理:详细介绍各种机器学习算法的原理、优缺点和适用场景

    目录 引言 二、线性回归 三、逻辑回归 四、支持向量机 五、决策树

    2024年02月02日
    浏览(43)
  • Hive数据倾斜的原因以及常用解决方案

    在Hadoop平台的hive数据库进行开发的时候,数据倾斜也是比较容易遇到的问题,这边文章对数据倾斜的定义以及产生的原因、对应的解决方案进行学习。 数据倾斜:数据分布不均匀,造成数据大量的集中到一点,造成数据热点。主要表现为任务进度长时间维持在 99%或者 100%的

    2024年02月15日
    浏览(49)
  • 基于MapReduce的Hive数据倾斜场景以及调优方案

    通常认为当所有的map task全部完成,并且99%的reduce task完成,只剩下一个或者少数几个reduce task一直在执行,这种情况下一般都是发生了数据倾斜。 即为在整个计算过程中,大量相同的key被分配到了同一个reduce任务上造成。Hive的数据倾斜本质上是MapReduce计算引擎的数据倾斜,

    2024年02月12日
    浏览(47)
  • Spring事务传播机制、实现方式、失效场景即原理

    贴一篇源码分析的好文章:https://blog.csdn.net/qq_30905661/article/details/114400417 一个事务对应一个数据库连接。 通过 this 来调用某个带有 @Transactional 注解的方法时,这个注解是失效的 spring事务底层是通过数据库事务和AOP实现的 首先对于使用@Transactional的注解的bean,spring会创建一个

    2024年02月14日
    浏览(36)
  • 【MySQL】说透锁机制(三)行锁升表锁如何避免? 锁表了如何排查?

    在上文我们曾小小的提到过,在 索引失效 的情况下,MySQL会把 所有聚集索引记录和间隙 都锁上,我们称之为 锁表 ,或叫 行锁升表锁 . 那么对于 行锁升表锁 ,有的同学误以为 行锁 升级变成了 表锁 ,但实际上 锁的类型并没有发生变化 ✍️, 还是行锁! 只是表的所有聚集

    2024年04月10日
    浏览(39)
  • TCP协议在IM场景中涉及核心问题以及解决方案梳理

    TCP工程问题扫盲先看下这个 [TCP连接的状态详解以及故障排查_tcp 连接时断时续_hguisu的博客-CSDN博客] 核心:TCP保证可靠的前提是链接能正常保持,如果各种原因导致链接断开。那链接会重置,之前承载的业务需要业务方自己保证可靠性、一致性;另外,在此基础上TCP只保证传

    2023年04月22日
    浏览(41)
  • nginx处理cros跨域遇到的各种问题及解决方案,以及https配置和浏览器https不安全问题处理

    提示:本人在生产部署服务时遇到一系列跨域问题和https配置问题,特此做以下记录: 跨域是指a页面想获取b页面资源,如果a、b页面的协议、域名、端口、子域名不同,或是a页面为ip地址,b页面为域名地址,所进行的访问行动都是跨域的,而浏览器为了安全问题一般都限制了

    2024年02月02日
    浏览(63)
  • etcd概念及原理以及应用场景选型

    github:https://github.com/etcd-io/etcd 官方:https://etcd.io/ etcd是CoreOS团队于2013年6月发起的开源项目,授权协议为Apache。etcd是用于共享配置和服务发现的分布式,一致性的KV存储系统。etcd内部采用raft协议作为一致性算法,etcd基于Go语言实现 提供配置共享和服务发现的系统比较多,其

    2024年02月07日
    浏览(47)
  • 深度解读UUID:结构、原理以及生成机制

    UUID (Universally Unique IDentifier) 通用唯一识别码 ,也称为 GUID (Globally Unique IDentifier) 全球唯一标识符。 UUID是一个长度为128位的标志符,能够在时间和空间上确保其唯一性。UUID最初应用于Apollo网络计算系统,随后在Open Software Foundation(OSF)的分布式计算环境(DCE)中得到应用。可

    2024年03月21日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包