| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Hive未关闭表的事务功能(ACID)所引发的一系列Bug问题 -> 正文阅读 |
|
[大数据]Hive未关闭表的事务功能(ACID)所引发的一系列Bug问题 |
Hive 未关闭表的事务功能(ACID)的问题一、Hive 未关闭表的事务功能(ACID)的所引发的问题记录一次HDP3.0 的hive 3.1.2由于未关闭ACID功能,导致使用到用户画像的Spark计算引擎报错,无法处理数据,impala无法查询的问题。由于hive 3.0之后默认开启ACID功能,默认建表都是使用ACID的事务表。而spark目前还不支持hive的ACID功能,因此无法读取ACID表的数据。 另外,读取不报错,但是读取不到数据的表INPUTFORMAT=org.apache.hadoop.hive.ql.io.orc.OrcInputFormat;报错insert-only 的表 INPUTFORMAT = org.apache.hadoop.mapred.TextInputFormat 。 hive3默认开启ACID功能引起的spark和impala报错的问题在hdp3.1.5中hive3中内部表默认开启了ACID,当spark和impala创建和读取内部表的时候会报错,网上建议的方式是舍弃掉acid特性。
对应hdp的hive默认配置做如下修改,重启hive服务后确实可以生效: 什么是事务表
由于HDFS只支持文件的添加和删除,不支持修改,因此Hive原生并不支持原子性的行级别修改。
Hive中支持的表类型和ACID特性如下图所示:
其中托管表是Hive内部表。 查看表的属性,指令: 非ACID表:
ACID表:
其中:
事务表的适用场景对于数仓中的行级数据更新删除需求比较频繁的,可以考虑使用事务表。 但平常的hive表并不建议使用事务表。因为事务表的限制很多,加上由于hive表的特性,也很难满足高并发的场景。 另外,如果事务表太多,并且存在大量的更新操作,metastore后台启动的合并线程会定期的提交MapReduce Job,也会一定程度上增重集群的负担。 结论: 除非有非常迫切的行级更新需求,又只能用hive表来做,才需要去考虑事务表。 注意事项
设计原理与实现文件管理格式HDFS本身是不支持直接修改文件的,也不能保证有人追加内容时的读一致性。 因此,为了支持ACID的特性,Hive只能使用其他数据仓库常用的方法,也就是增量的形式记录更新和删除(也称做读时更新)。 存储在事务表中的数据会被分成两种类型的文件: base文件,用来存放平常的数据 ACID表的文件结构:${Hive_path}/db/table_name/base_{id}/file。
其中 非ACID表,通过别的表格导入数据,文件目录为:
普通内部表文件目录:
问题解决办法那么如果项目一开始就没有关闭hive的ACID设置,怎么解决这个问题呢? 思路:先关闭ACID设置
二、root 进入hive 报错:Permission denied: user=root, access=WRITE, inode=“/user/root”:hdfs:hdfs:drwxr-xr-x使用root用户执行hive -f /home/insert.sql报错
三、Hive表更名问题——RENAME TABLERENAME TABLE
这个命令可以让用户为表更名。数据所在的位置和分区名并不改变。换而言之,老的表名并未“释放”,对老表的更改会改变新表的数据? 参考博客 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 | -2025/4/23 6:01:28- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |