配置(hortonworks)
我正在尝试执行
lock table event_metadata EXCLUSIVE;
Hive响应:
处理语句时出错:FAILED:执行错误,从org.apache.hadoop.hive.ql.exec.DDLTask返回代码1。当前事务管理器不支持显式锁定请求。事务管理器:org.apache.hadoop.hive.ql.lockmgr.DbTxnManager
在代码中有显而易见的禁用显式锁的地方: http://grepcode.com/file/repo1.maven.org/maven2/org.apache.hive/hive-exec/1.2.0/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java#DbTxnManager
321 @Override
322 public boolean supportsExplicitLock() {
323 return false;
324 }
问题:
如何使显式锁定工作?他们出现在什么版本的蜂巢中?
以下是显式锁定工作的cloudera示例http://www.ericlin.me/how-table-locking-works-in-hive。
答案 0 :(得分:0)
Hive
包含 locking
功能, Apache Zookeeper
用于 {{ 1}} 即可。 locking
实现了高度可靠的分布式协调。除了一些其他设置和配置步骤, Zookeeper
隐身 Zookeeper
用户。
在 Hive
文件中,设置以下属性:
$HIVE_HOME/hive-site.xml
重新启动 <property>
<name>hive.zookeeper.quorum</name>
<value>zk1.site.pvt,zk1.site.pvt,zk1.site.pvt</value>
<description>The list of zookeeper servers to talk to.
This is only needed for read/write locks.
</description>
</property>
<property>
<name>hive.support.concurrency</name>
<value>true</value>
<description>Whether Hive supports concurrency or not.
A Zookeeper instance must be up and running for the default Hive lock manager to support read-write locks.</description>
</property>
后,运行命令
hive
参考:编写Hive,O&#39; REILLY
修改强>
提供默认Hive行为的hive> lock table event_metadata EXCLUSIVE;
@Override
public boolean supportsExplicitLock() {
return true;
}
重复 DummyTxnManager
并不支持 pre Hive-0.13 behavior
其中
DbTxnManager.java,将 transactions
存储在 transactions
metastore
中,有:
database
答案 1 :(得分:0)
您可以动态设置并发参数:
https://www.googleapis.com/auth/gmail.settings.basic
在此之后,您可以尝试执行命令
答案 2 :(得分:0)
尝试以下操作:
set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DummyTxnManager;
解锁表表名;