因为业务要求,需要对Hive表进行delete,在官网查询后,发现update和delete是一类问题。在此总结下如何实现Hive表的delete和update。

首先,先看下官网关于updatedelete的相关说明,使用注意事项也请参考官网说明,这里只介绍如何实现相关功能。

综合上述信息,Hive自0.14版本开始支持update和delete,要执行update和delete的表必须支持ACID,而关于ACID的详细介绍,需要查看Hive Transactions.

经过对Hive Transactions相关内容的分析,我提取出了以下必要信息:

综合上述信息,可以得出以下结论:

如果一个表要实现update和delete功能,该表就必须支持ACID,而支持ACID,就必须满足以下条件:

1、表的存储格式必须是ORC(STORED AS ORC);

2、表必须进行分桶(CLUSTERED BY (col_name, col_name, ...)  INTO num_buckets BUCKETS);

3、Table property中参数transactional必须设定为True(tblproperties('transactional'='true'));

4、以下配置项必须被设定:

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(经过测试,服务端也需要设定该配置项)

注意:上述配置项必须区分Client端和服务端。在Cloudera Manager上可以分别添加(hive—>配置—>高级),在更新部署配置信息的时候需要勾选部署客户端配置(默认是勾选的)。

大数据谭志坚11个月前#1楼这个文档好,看懂了,服务端,客户端都的配置!我原来只配置了客户端,一直不成功。把服务端配置好后,就可以了。谢谢。
    1.  
      <property>
    2.  
      <name>hive.support.concurrency</name>
    3.  
      <value>true</value>
    4.  
      </property>
    5.  
      <property>
    6.  
      <name>hive.enforce.bucketing</name>
    7.  
      <value>true</value>
    8.  
      </property>
    9.  
      <property>
    10.  
      <name>hive.exec.dynamic.partition.mode</name>
    11.  
      <value>nonstrict</value>
    12.  
      </property>
    13.  
      <property>
    14.  
      <name>hive.txn.manager</name>
    15.  
      <value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value>
    16.  
      </property>
    17.  
      <property>
    18.  
      <name>hive.compactor.initiator.on</name>
    19.  
      <value>true</value>
    20.  
      </property>
    21.  
      <property>
    22.  
      <name>hive.compactor.worker.threads</name>
    23.  
      <value>1</value>
    24.  
      </property>
    25.  
      <property>
    26.  
      <name>hive.in.test</name>
    27.  
      <value>true</value>
    28.  
      </property>

Hive 实现update和delete(转载)的更多相关文章

  1. hive增加Update、Delete支持

    一.配置hive-site.xml二.建表三.操作四.总结 一.配置hive-site.xml CDH版本先进入Hive配置页 选择高级,找到hive-site.xml 的 Hive 客户端高级配置代 ...

  2. Hive支持行级update、delete时遇到的问题

    Hive从0.14版本开始支持事务和行级更新,但缺省是不支持的,需要一些附加的配置.要想支持行级insert.update.delete,需要配置Hive支持事务.(行级的insert好像不配置也能运 ...

  3. hive如何配置支持事务及insert、update、delete

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

  4. 转载:MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解

    转自:http://www.jb51.net/article/39199.htm 本篇文章是对MySQL数据库INSERT.UPDATE.DELETE以及REPLACE语句的用法进行了详细的分析介绍, ...

  5. MongoDB入门系列(二):Insert、Update、Delete、Drop

    概述 本章节介绍Insert.Update.Delete.Drop操作基本语法. 环境: Version:3.4 insert insert()基本语法如下: db.collection.insert ...

  6. [转] hive0.14-insert、update、delete操作测试

    FROM : http://blog.csdn.net/hi_box/article/details/40820341 首先用最普通的建表语句建一个表: hive>create table te ...

  7. Hive SQL的编译过程[转载自https://tech.meituan.com/hive-sql-to-mapreduce.html]

    https://tech.meituan.com/hive-sql-to-mapreduce.html Hive是基于Hadoop的一个数据仓库系统,在各大公司都有广泛的应用.美团数据仓库也是基于Hi ...

  8. CDH-hive支持insert、update、delete操作

    开发要求hive支持update操作,搞张临时表测试下,报错如下: 配置hive-site.xml CDH进入hive配置页,选择高级,找到hive-site.xml的HIve客户端高级配置段代码段, ...

  9. Java-MyBatis-MyBatis3-XML映射文件:insert, update 和 delete

    ylbtech-Java-MyBatis-MyBatis3-XML映射文件:insert, update 和 delete 1.返回顶部 1. insert, update 和 delete 数据变更 ...

随机推荐

  1. GIT讲解

    一.什么是Git: Git是目前世界上最先进的分布式版本控制系统. 二.为什么要用版本控制系统: 1.更方便的存储版本 2.恢复之前的版本 3.更方便的进行对比 4.协同合作 三.如何安装GIT: 1 ...

  2. Spring Aop中execution的语法

    参考地址:https://blog.csdn.net/zz210891470/article/details/54175107 execution(* com.sample.service.impl. ...

  3. C# VS启动调试项目允许外网调试(微信开发)

    转发链接:https://blog.csdn.net/sinat_23050697/article/details/62889693 主要效果是本机调试网站,将网站发布到某域名(如m16758r728 ...

  4. 7.1 为什么bulk使用奇特的json格式?

    回顾: bulk的语法要求:每个json串都不能换行,不同json串之间,必须换行   为什么不用标准json数组呢?如: [     {         "create":{.. ...

  5. flex 布局学习

    flex 布局学习 寻根溯源话布局 一切都始于这样一个问题:怎样通过 CSS 简单而优雅的实现水平.垂直同时居中.记得刚开始学习 CSS 的时候,看到 float 属性不由得感觉眼前一亮,顺理成章的联 ...

  6. C++项目链接出错, error LNK2019: 无法解析的外部符号 __imp_xxxx_Allocate,该符号在函数 "xxxx" (xxxx) 中被引用

    1 错误提示 error LNK2019: 无法解析的外部符号 __imp_FreeImage_Allocate,该符号在函数 "public: bool __cdecl colmap::B ...

  7. 【开发工具】- Xshell工具的下载和安装

    下载地址:https://www.netsarang.com/zh/free-for-home-school/ Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Micro ...

  8. group by 和 order by 的区别 + 理解过程

    order by 和 group by 的区别order by 和 group by 的区别:1,order by 从英文里理解就是行的排序方式,默认的为升序. order by 后面必须列出排序的字 ...

  9. 一个关于integer表示范围的问题

    1:在做字符串parse为integer 类型市,一直出现问题就是当我parse “”2851663837”报错, 但是当我parse “1417585794”  可以.原来是超出integer 类型 ...

  10. Json序列化 总结

    案例总结:https://www.cnblogs.com/jsll/p/11855349.html public string Json_GetDepartment_Position(...)//st ...