参考文献:hive update和delete报错Attempt to do update or delete using transaction manager-CSDN博客
首先说明,hive数据库一般是增和查询用得比较多,不建议频繁的去修改删除,有悖hive数据库的初衷。
废话不多说,开始配置,首先找到你的hive-site.xml的路径
一般来说是在hive的conf目录下,打开编辑它
加入以下代码:
<!-- 删除和修改 -->
<property>
<name>hive.support.concurrency</name>
<value>true</value>
</property>
<property>
<name>hive.enforce.bucketing</name>
<value>true</value>
</property>
<property>
<name>hive.exec.dynamic.partition.mode</name>
<value>nonstrict</value>
</property>
<property>
<name>hive.txn.manager</name>
<value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value>
</property>
<property>
<name>hive.compactor.initiator.on</name>
<value>true</value>
</property>
<property>
<name>hive.compactor.worker.threads</name>
<value>1</value>
</property>
<property>
<name>hive.compactor.worker.threads</name>
<value>1</value>
</property>
<property>
<name>hive.in.test</name>
<value>true</value>
</property>
修改文件后重启你的hive,可以参考连师傅的hadoop(1) - 连师傅只会helloword - 博客园 (cnblogs.com)
重启完成后开始测试
先找到你的数据库,我这里的数据库的名字是itheima,记得更改
use itheima;
输入建表语句,创建student表
create table student(
id int,
name String,
sex varchar(2),
birthday varchar(10),
major varchar(1)
)clustered by (id) into 2 buckets stored as orc TBLPROPERTIES('transactional'='true');
然后输入插入语句itheima是数据库名字,student是表名
INSERT INTO itheima.student (id, name, sex, birthday, major) VALUES (1, '1', '1', '1', '1');
插入后会出现加载的信息等待加载完成
加载完成会有个ok,我们输入
select * from student
查一下插入成功没有,可以看到是成功了的
然后尝试更改 语句
hive> update student set name='beijing' where id=1;
还是会加载,等待加载完成,还是ok
那么这样之后这个student表就可以删除和修改了,有问题我会发在之后的博客里。
标签:删除,数据库,7.20,hive,student,id,itheima,加载 From: https://www.cnblogs.com/cqdycazs/p/18312816