欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hive Hive2开启insert、update、delete功能

程序员文章站 2022-04-29 08:13:31
...

Hive从0.14版本开始支持事务和行级更新,但缺省是不支持的,需要一些附加的配置。要想支持行级insert、update、delete,需要配置Hive支持事务。

CDH版本通过CM修改配置

Client端:

hive.support.concurrency = true
hive.enforce.bucketing = true
hive.exec.dynamic.partition.mode = nonstrict  
hive.txn.manager = org.apache.hadoop.hive.ql.lockmgr.DbTxnManager  

服务端:

hive.compactor.initiator.on = true
hive.compactor.worker.threads = 1
hive.txn.manager = org.apache.hadoop.hive.ql.lockmgr.DbTxnManager

步骤:Hive -> 配置 ->在搜索框中输入hive-site

最终结果如下图:
Hive Hive2开启insert、update、delete功能

Hive Hive2开启insert、update、delete功能

安装版修改配置

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>

最后一定要记得 重启Hive服务

测试

1.创建测试表

create table t1(s1 int, s2 string, s3 string, s4 string) 
clustered by (s1) into 8 buckets 
stored as orc TBLPROPERTIES ('transactional'='true');

说明:建表语句必须带有into buckets子句和stored as orc TBLPROPERTIES ('transactional'='true')子句,并且不能带有sorted by子句。

2.测试insertupdatedelete

insert into t1 values (1,'a1','b1','c2');
insert into t1 values (2,'a2','b2','c2');
update t1 set s2='a2' where id=1;
delete from t1 where id=2;

Hive Hive2开启insert、update、delete功能

相关标签: 大数据 hive