因为业务要求,需要对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. 18 IO流(十五)——RandomAccessFile随机访问文件及使用它进行大文件切割的方法

    本文部分内容转自:https://blog.csdn.net/nightcurtis/article/details/51384126 1.RandomAccessFile特点 RandomAcces ...

  2. quartz2.3.0(十)xml配置方式定义quartz定时任务

    1.新增pom依赖 除了按照<quartz2.3.0系列目录——带您由浅入深全面掌握quartz2.3.0>添加依赖之外,pom.xml里新增加依赖: <dependency> ...

  3. Hadoop1-认识Hadoop大数据处理架构

    一.简介概述 1.什么是Hadoop Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构 Hadoop是基于java语言开发,具有很好的跨平 ...

  4. Unity的学习笔记(鼠标移动控制视角移动)

    using UnityEngine; public class MouseLook : MonoBehaviour { , MouseX = , MouseY = } //定义一个枚举,移动xy,或者 ...

  5. springboot读取系统级环境变量,和读写系统属性以及unittest来获取环境变量的方法

    环境变量的读取以及系统属性的设置 环境变量只能读取,不能修改,系统属性可以修改 系统变量的读取方式: System.getEnv() 系统属性有多重读取和修改方式: 其修改方式为: 读取系统属性: @ ...

  6. 使用DOS命令登录管理员并添加账号管理员权限

    runas /user:administrator cmd Password: compmgmt.msc

  7. VBA 字符串-相关函数(6-12)

    Mid()函数 Mid()函数返回给定输入字符串中指定数量的字符. 语法 Mid(String,start[,Length]) 参数 String - 必需的参数.输入从中返回指定数量的字符的字符串. ...

  8. jQuery将form表单的数据封装成json对象

    /** * 自动将form表单封装成json对象 */ $.fn.serializeObject = function() { var o = {}; var a = this.serializeAr ...

  9. Core Animation笔记(特殊图层)

    1.shapeLayer: 渲染快速,内存占用小,不会被图层边界裁掉(可以在边界之外绘制),不会像素化(当做3D变化如缩放是不会失真) CGRect rect = self.containerView ...

  10. Kubernetes 1.15部署日记-使用kubeadm--<7-8>

    7. 在k8s集群中run一个应用 nginx已经跑起来了到此kubernetes集群部署结束了. 8. 总结 此次部署kubernetes的起因是AI团队中的kubernetes项目跑在其他IP段网 ...