CDH6.x环境下Apache Hudi的版本适配与改造指南
需积分: 16 62 浏览量
更新于2024-08-05
收藏 1021KB PDF 举报
"Apache Hudi 兼容CDH6.x 修改记录v1.0.pdf"
Apache Hudi 是一个用于大数据湖构建的开源框架,旨在提供高效的数据更新、查询和管理能力。然而,它与Cloudera Data Hub (CDH) 6.x 集群的默认组件版本存在不兼容的问题。为了在CDH6.x环境中顺利运行Hudi,需要对Hudi的源代码进行改造和适配。以下是一些关键的修改和问题修复:
1. **Spark**:
- 默认版本为2.4.4,需更新为2.4.0-cdh6.x。
- 在Hudi中,需要修改使用分区参数的代码以适应CDH6.x的Spark。
- DataSourceUtils的版本需要更新,以匹配CDH6.x的Spark版本。
- Hudi-spark2PartitionUtils需要修正,添加用户自定义方式。
- CDH6.x删除了spark-sql中的OrcFileFormat,因此需要升级到兼容的Spark版本2.4.4-cdh6.x。
2. **Flink**:
- 虽然未详细列出Flink的具体修改,但通常在不同版本间升级可能涉及API更改,需要检查并适配代码。
3. **Hadoop**:
- 默认版本为2.7.0,需更新为3.0.0-cdh6.x。这可能涉及到Hadoop API的更新和调整。
4. **Hive**:
- 默认版本为2.3.3,需更新为2.1.1-cdh6.x。
- 特别地,存在hive-exec使用JSON版本问题,需要解决兼容性。
5. **HBase**:
- 默认版本为1.2.3,需更新为2.1.0-cdh6.x。
- 在HBase方面,有多个方法和类在新版本中发生了变化,如HFile.createReader的参数、HFileScanner.getKeyValue的移除、WriterFactory.withComparator的入参类型、HFileReaderImpl.getMetaBlock返回值的改变,以及HColumnDescriptor的废弃。所有这些都需要相应代码的更新。
除了组件版本的更新,还需要处理额外依赖引发的问题:
- **org.glassfish:javax.elsnapshot**:可能存在版本冲突或报错,需要排查和调整。
- **样式检查问题**:可能涉及到代码风格或格式化规范,需要根据CDH6.x的环境标准进行调整。
- **hudi-integ-test脚本路径执行问题**:测试脚本可能不适用于新的环境,需要修正执行路径和配置。
为了在CDH6.x上成功部署和运行Apache Hudi,开发者需要仔细检查并更新所有相关组件的版本,同时针对API的变更进行代码适配。这涉及到深入理解各个组件的工作原理和接口,以确保所有功能都能正确无误地运行。完成这些工作后,Hudi将能够充分利用CDH6.x的特性和性能,为数据湖提供强大的支持。
2022-07-10 上传
2022-03-18 上传
2023-05-26 上传
2021-10-03 上传
2022-03-18 上传
2022-07-13 上传
2021-10-04 上传
2024-08-18 上传
2021-09-26 上传