HIVE3 深度剖析 (下篇)

HIVE3 深度剖析 (下篇)

大家好,我是明哥!

HIVE3.x 系列相对于HIVE2.x系列,差异还是很大的。为方便大家了解这些差异点以更有效地使用HIVE,接下来我会通过几篇文章,重点剖析下这些差异点。

整个系列分为上下两篇文章,涵盖以下章节:

  1. 从 HIVE 架构的演进看 HIVE 的发展趋势
  2. 盘点下 HIVE3.X 和 HIVE2.X 的那些重大差异点
  3. HIVE3.X 的 ORC 事务表详解
  4. HIVE3.X 的 LEGACY 传统模式详解
  5. 周边生态如 SPARK/DATAX 如何对接HIVE 3x
  6. 大数据应用对接 HIVE3.x 的几点建议

本片文章是下篇,包含上述后三个章节,希望大家喜欢。

1. HIVE3.X 的 LEGACY 传统模式详解

  • 如上篇所述,Hive 的 ORC 事务内表,通过 ACID 事务特性,提供诸多优势,包括对多个作业并发读写同一个表或同一个分区的支持,包括记录级别的增删改和数据修复功能,包括更好的批量性能、安全保障和用户体验等等;

  • 但是直接切换使用 HIVE ORC 事务表,涉及到用户的学习成本,也涉及到遗留系统代码的迁移改造,所以可能在一段时间内,用户仍期望 HIVE3.X 能尽量保留原有 Hive2.X 的使用模式 (即默认方式创建的表仍然是非事务表);

  • Cloudera 推出 了 Hive 的 LEGACY 传统 模式,并回馈给了 APACHE HIVE 开源社区,以缓解 HIVE/CDP 在升级/迁移期间的脚本兼容性问题,并给用户更多的适应时间( 从 CDP7.1.4 开始支持传统模式);

  • HIVE3.X 的 legacy 传统模式,可以通过参数 hive.create.as.external.legacy 来开启,需要说明的是,该参数在推出之初,社区就明确指出,“This config is temporary and will be deprecated later”,所以长远来看,还是推荐大家学习 HIVE3.X 的这些新特性,并逐渐摒弃对传统模式的以来;

  • 需要注意,并不是所有版本的 HIVE 3.X 都支持 LEGACY 模式,大家可以通过 BEELINE 登陆 HS2 后执行命令 SET hive.create.as.external.legacy 查看是否支持该参数,如果显示 xx is undefined ,则表示不支持 LEGACY 模
    式;

  • 大家知道,HIVE2.X中 DROP table 时,对于内表,会删除 HMS 中的元数据和底层存储系统 HDFS 中的数据,而对于外表,则只会删除 HMS 中的元数据不会删除底层存储系统 HDFS 中的数据;

  • 在 HIVE3.X 中,根据 DROP TABLE 时是否删除底层存储系统 HDFS 中的数据,external 外表又被分为两种类型:external non purgeable table 和 external purge table,前者在DROP TABLE 时跟 HIVE2.X 的外表行为一致,不会删除底层HDFS中的数据;而后者 DROP TABLE 时跟 HIVE2.X 的内表行为一致,也会删除底层 HDFS 中的数据;

  • HIVE3.X 中创建外表时外表的具体类型,可以通过 session 级别参数 hive.external.table.purge.default 控制,也可以在建表时在

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明哥的IT随笔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值