hive的事物性 transaction manager

Posted wqbin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive的事物性 transaction manager相关的知识,希望对你有一定的参考价值。

create table lk3 (id string,nname string,grade int,goldUser int);

insert into lk3 values
(1,jack,300, 10 ),
(2,mach, 200, 10 ),
(3,lich, 100 ,10 ),
(4,rock, 1, 0 ),
(5,mick, 1 ,10 ),
(6,kight, 0 ,10 ),
(7,babaya, 0, 0 ),
(8,kano, 0, 10);
0: jdbc:hive2://localhost:10000> update lk3 set name=wangqingbin where id=1;
Error: Error while compiling statement: FAILED: SemanticException [Error 10294]: Attempt to do update or delete using transaction manager that does not support these operations. (state=42000,code=10294)
1.在hive-site.xml文件中,增加如下属性。

    <name>hive.support.concurrency</name>
    <value>true</value>

    <name>hive.enforce.bucketing</name>
    <value>true</value>

    <name>hive.exec.dynamic.partition.mode</name>
    <value>nonstrict</value>

    <name>hive.txn.manager</name>
    <value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value>

    <name>hive.compactor.initiator.on</name>
    <value>true</value>

    <name>hive.compactor.worker.threads</name>
    <value>1</value>

    <name>hive.in.test</name>
    <value>true</value>

2、重启hive服务;

update 和 delete都属于事物操作。

hive的行级修改 需要开启事物。

以上是关于hive的事物性 transaction manager的主要内容,如果未能解决你的问题,请参考以下文章

Spring中的事物管理,用 @Transactional 注解声明式地管理事务

事务 Transaction的那些事

Hive的事务

数据库事物四大特性-ACID

Spring-声明式事物

数据库日志redo和undo