Hive 锁 lock

Hive + zookeeper 可以支持锁功能

锁有两种:共享锁、独占锁,Hive开启并发功能的时候自动开启锁功能

1)查询操作使用共享锁,共享锁是可以多重、并发使用的

2)修改表操作使用独占锁,它会阻止其他的查询、修改操作

3)可以对分区使用锁。

1、修改hive-site.xml,配置如下:

  1. <property>
  2.     <name>hive.zookeeper.quorum</name>
  3.     <value>zk1,zk2,zk3</value>
  4.   </property>
  5. <property>
  6.     <name>hive.support.concurrency</name>
  7.     <value>true</value>
  8. </property>

2、显式管理独占锁

1)锁表

  1. hive> lock table t1 exclusive;

表被独占锁之后,将不能执行查询操作:

  1. hive> SELECT COUNT(*) FROM people;
  2. conflicting lock present for default@people mode SHARED
  3. FAILED: Error in acquiring locks: locks on the underlying objects
  4. cannot be acquired. retry after some time

2)解除锁

  1. hive> unlock table t1;

来自为知笔记(Wiz)

时间: 2024-11-05 21:50:25

Hive 锁 lock的相关文章

锁 Lock

锁 Lock java.util.concurrent.locks.Lock 是一个类似于 synchronized 块的线程同步机制.但是 Lock 比 synchronized 块更加灵活.精细. 既然 Lock 是一个接口, 首先创建了一个 Lock 对象.之后调用了它的 lock() 方法.这时候这个 lock 实例就被锁住啦.任何其他再过来调用 lock() 方法的线程将会被阻塞住,直到锁定 lock 实例的线程调用了 unlock() 方法.最后 unlock() 被调用了,lock

Android多线程研究(9)——线程锁Lock

在前面我们在解决线程同步问题的时候使用了synchronized关键字,今天我们来看看Java 5.0以后提供的线程锁Lock. Lock接口的实现类提供了比使用synchronized关键字更加灵活和广泛的锁定对象操作,而且是以面向对象的方式进行对象加锁. @Override public void run() { while(true){ Lock lock = new ReentrantLock(); try { lock.lock(); Thread.sleep(new Random()

JDK5.0 特性-线程锁Lock

来自:http://www.cnblogs.com/taven/archive/2011/12/17/2291470.html 1 import java.util.concurrent.ExecutorService; 2 3 import java.util.concurrent.Executors; 4 5 import java.util.concurrent.Future; 6 7 import java.util.concurrent.locks.Lock; 8 9 import j

锁 Lock、重入锁、写入锁

ReentrantLock 重入锁 类似于synchronize 区别与写法上,在需要进行同步的代码部分加上锁定,但不要忘记最后一定要释放锁定, 不然会造成锁永远无法释放,其他线程永远进不来的结果.eg: 1 package com.zym.height.Lock01; 2 3 import java.util.concurrent.locks.Lock; 4 import java.util.concurrent.locks.ReentrantLock; 5 6 public class Us

C++11 锁 lock

转自:https://www.cnblogs.com/diegodu/p/7099300.html 互斥(Mutex: Mutual Exclusion) 下面的代码中两个线程连续的往int_set中插入多个随机产生的整数. 1234567891011121314 std::set<int> int_set;auto f = [&int_set]() { try { std::random_device rd; std::mt19937 gen(rd()); std::uniform_

python笔记10-多线程之线程同步(锁lock)

前言 关于吃火锅的场景,小伙伴并不陌生,吃火锅的时候a同学往锅里下鱼丸,b同学同时去吃掉鱼丸,有可能会导致吃到生的鱼丸.为了避免这种情况,在下鱼丸的过程中,先锁定操作,让吃火锅的小伙伴停一会,等鱼丸熟了再开吃,那么python如何模拟这种场景呢? 未锁定 1.如果多个线程同时操作某个数据,会出现不可预料的结果.比如以下场景:当小伙伴a在往火锅里面添加鱼丸的时候,小伙伴b在同时吃掉鱼丸,这很有可能导致刚下锅的鱼丸被夹出来了(没有熟),或者还没下锅,就去夹鱼丸(夹不到). # coding=utf-

java 锁 Lock接口详解

一:java.util.concurrent.locks包下常用的类与接口(lock是jdk 1.5后新增的) (1)Lock和ReadWriteLock是两大锁的根接口,Lock代表实现类是ReentrantLock(可重入锁),ReadWriteLock(读写锁)的代表实现类是ReentrantReadWriteLock. Lock 接口支持那些语义不同(重入.公平等)的锁规则,可以在非阻塞式结构的上下文(包括 hand-over-hand 和锁重排算法)中使用这些规则.主要的实现是 Ree

6、JUC--同步锁Lock

显示锁 Lock ? 在Java 5.0之前,协调共享对象的访问时可以使用的机 制只有 synchronized 和 volatile .Java 5.0 后增加了一些 新的机制,但并不是一种替代内置锁的方法,而是当内 置锁不适用时,作为一种可选择的高级功能. ? ReentrantLock 实现了 Lock 接口,并提供了与 synchronized 相同的互斥性和内存可见性.但相较于 synchronized 提供了更高的处理锁的灵活性 解决多线程安全的方法: 1.同部代码块(synchro

并发编程—4显式锁 Lock

目录 4.显式锁 Lock 4.1 概念 内置锁 vs 显示锁 可重入锁 vs 不可重入锁 公平锁 vs 非公平锁 读锁 vs 写锁 4.2 ReentrantLock源码解读 4.显式锁 Lock 4.1 概念 内置锁 vs 显示锁 synchronize是java语言层面实现的锁,称为内置锁.使用方便代码简洁,而且在jdk新版本优化后,性能也得到了很大的提高.synchronize是一个可重入锁.而Lock是jdk提供开发者是用的一个显式锁.通过lock()和unlock()方法加锁和释放锁