基于 CDH5.11.2 集成 IceBerg(一)
1. 背景
为什么调研 Hadoop、Spark 和 Hive 的升级,主要是原因是解决数据的排重,⽬前实现基于 hive 窗⼝函
数,窗⼝函数需要对所有数据进⾏分区,之后对每个分区的数据进⾏排序后统计,有时候只想更新少
量数据却使⽤INSERT OVERWRITE,hive 虽然⽀持事务,但是限制过多锁粒度有限,metastore 定期
执⾏合并任务,代价太⼤。
那么有没有可能解决 hive 去重,其实可以考虑使⽤iceberg,iceberg 设计之初就是要解决数据变更和
回溯,有关 iceberg 的介绍请参考:
1. 官⽹:https://iceberg.apache.org/docs/latest
2. Flink 和 Iceberg 如何解决数据⼊湖⾯临的挑战:https://flinklearning.org.cn/article/detail/9a6b7c242d300a5f22bba2b3f5d2860d
3. Iceberg 原理分析:https://zhuanlan.zhihu.com/p/488467438
4. Apache Iceberg 你需要知道的原理与技术:https://toutiao.io/posts/tg5e0qi/preview
2. ⽅案如何设计
iceberg 可以解决 hive 去重,你可以问问⾃⼰,接下来该如何开展⼯作呢?
3. IceBerg 与 Hive 和 Spark
在了解了 IceBerg 的基础原理功能之后,调研 IceBerg 与 Hive、Spark 和 Hadoop 版本适配。
3.1 IceBerg 与 Spark
考虑到持续更新,IceBerg 选择最新版本,Spark 版本⾄少为 3.1
3.2 IceBerg 与 Hive
Hive 版本⾄少为 Hive2。
4. 当前 CDH5.11.2 下的 Hadoop、Hive 和 Spark 版本
通过官⽹cloudera进⾏查看,对应版本如下:
Hadoop:2.6.0
Hive:1.1.0
Spark:1.6.0
接下来需要考虑如何升级 Hive 和 Spark
5. Spark 升级
请参考 Spark3 适配 CDH5.11.2 3. Spark3 客户端部署
6. Hive 升级
请参考 Hive 集成
7. 功能验证
请参考 功能验证
版权声明: 本文为 InfoQ 作者【冰心的小屋】的原创文章。
原文链接:【http://xie.infoq.cn/article/f60c7063bd3b21580b63268e9】。文章转载请联系作者。
评论