zoukankan      html  css  js  c++  java
  • Hive 实现update和delete(转载)

    原文链接:https://blog.csdn.net/xueyao0201/article/details/79387647

    因为业务要求,需要对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>
  • 相关阅读:
    vue 中的单元测试
    redux-学习总结
    React-学习总结
    vuecli 中 chainWebpack 的常用操作
    常用 vue-config.js 配置
    JavaScript 中的 MVC、MVP、MVVM
    日常工作中 @vue/cli 需要关注的一些配置
    Electron 构建超时问题
    JSBridge 原理与封装
    Three.js 之相机
  • 原文地址:https://www.cnblogs.com/xibuhaohao/p/11811887.html
Copyright © 2011-2022 走看看