Hive Hive2开启insert、update、delete功能

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功能_第1张图片

Hive Hive2开启insert、update、delete功能_第2张图片

安装版修改配置

hive-site.xml文件中,增加如下属性:

<name>hive.support.concurrencyname>
<value>truevalue>

<name>hive.enforce.bucketingname>
<value>truevalue>

<name>hive.exec.dynamic.partition.modename>
<value>nonstrictvalue>

<name>hive.txn.managername>
<value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManagervalue>

<name>hive.compactor.initiator.onname>
<value>truevalue>

<name>hive.compactor.worker.threadsname>
<value>1value>

<name>hive.in.testname>
<value>truevalue>

最后一定要记得 重启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功能_第3张图片

你可能感兴趣的:(大数据,hive)