Chinaunix首页 | 论坛 | 博客
  • 博客访问: 577162
  • 博文数量: 140
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1202
  • 用 户 组: 普通用户
  • 注册时间: 2016-03-11 14:13
个人简介

狂甩酷拽吊炸天

文章分类

全部博文(140)

文章存档

2020年(1)

2019年(37)

2018年(17)

2017年(35)

2016年(50)

分类: LINUX

2019-12-31 17:24:11

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

配置Hive支持事务(Hive 2.3.4版)
1. 在hive-site.xml文件中添加如下配置项

点击(此处)折叠或打开

  1. <property>
  2.     <name>hive.support.concurrency</name>
  3.     <value>true</value>
  4. </property>
  5. <property>
  6.     <name>hive.exec.dynamic.partition.mode</name>
  7.     <value>nonstrict</value>
  8. </property>
  9. <property>
  10.     <name>hive.txn.manager</name>
  11.     <value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value>
  12. </property>
  13. <property>
  14.     <name>hive.compactor.initiator.on</name>
  15.     <value>true</value>
  16. </property>
  17. <property>
  18.     <name>hive.compactor.worker.threads</name>
  19.     <value>1</value>
  20. </property>



2. 添加Hive元数据(使用mysql存储),登录mysql,执行如下sql:
INSERT INTO NEXT_LOCK_ID VALUES(1);
INSERT INTO NEXT_COMPACTION_QUEUE_ID VALUES(1);
INSERT INTO NEXT_TXN_ID VALUES(1);
COMMIT;


3.启动hadoop集群和mysql
     
$HADOOP_HOME/sbin/start-dfs.sh
     $HADOOP_HOME/sbin/start-yarn.sh
     ~/mysql/bin/mysqld &


4. 建立测试表
create table t1(id int, name string) 
 clustered by (id) into 8 buckets 
 stored as orc TBLPROPERTIES ('transactional'='true');
说明:建表语句必须带有into buckets子句和stored as orc TBLPROPERTIES ('transactional'='true')子句,并且不能带有sorted by子句。

5. 测试insert、update、delete
  1. insert into t1 values (1,'aaa');
  2. insert into t1 values (2,'bbb');
  3. update t1 set name='ccc' where id=1;
  4. delete from t1 where id=2;
可以查看输入,update和delete都已经OK了


阅读(6878) | 评论(0) | 转发(0) |
0

上一篇:Git命令大全

下一篇:Apache-Hudi入门

给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册