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-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.测试insert
、update
、delete
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;
上一篇: 大数据4_03_hive调优
下一篇: hive on spark部署