我猜在Hive中制造酸是一条孤独的途径。我发现很难找到解决办法。
此查询也类似于我下面的查询。
配置单元表不响应select查询。启用酸
错误: FAILED: Error in acquiring locks: Lock acquisition for LockRequest(component:[ LockComponent(type:SHARED_READ, level:TABLE, dbname:db1, tablename:table1, operationType:INSERT, isAcid:true), LockComponent(type:SHARED_READ, level:TABLE, dbname:db1, tablename:table2, operationType:SELECT), LockComponent(type:SHARED_READ, level:TABLE, dbname:db1, tablename:table3, operationType:SELECT)], txnid:10140, user:userid, hostname:host.xyz.com, agentInfo:userid_20190707082237_ff87ff1b-bcc2-466d-b5db-e5781ff1f2ef) timed out after 5503292ms. LockResponse(lockid:22084, state:WAITING)
有些锁已经存在好几个月了。即使在重新创建表之后,这些锁仍然存在。这可能是错误的原因。但我不确定。因为有时同样失败的查询也会起作用。这让人困惑。
我使用r中的系统命令来运行配置单元查询,如下所示。因此,对于每个查询,也会执行以下设置
acid <- "set hive.support.concurrency=true;
set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
set hive.enforce.bucketing=true;
set hive.exec.dynamic.partition.mode=nostrict;
set hive.compactor.initiator.on=true;
set hive.compactor.worker.threads=1;"
hql <- paste(acid,hql)
response <- system(paste0("hive -S -e ","\"", hql,"\""," 2>&1"), wait = TRUE,intern=TRUE)
对于一些查询,例如 select count(*)
我用 tez
,因为查询运行时没有问题,而且速度更快。并非所有查询都可以使用 tez
因为它会带来一些其他的错误。
一些 Drop table
查询提供锁定超时。但还是一样 Drop table
在不启用 ACID
属性。
我想我能正确地解释。我知道这是多方面的问题。但主要问题是由于锁而无法执行查询。也无法杀死锁。
配置单元版本 Hive 2.1.1-mapr-1803 Subversion git://9281ba475c39/root/opensource/mapr-hive-2.1/dl/mapr-hive-2.1 -r ef09bc4b4286a3f53947196a79949620b006344e Compiled by root on Mon Apr 2 15:49:32 UTC 2018 From source with checksum e47dbe8554cd78b7254c1856508175bd
暂无答案!
目前还没有任何答案,快来回答吧!