本文为您介绍Iceberg表使用数据湖元数据的必要配置。
支持以下配置:
Spark配置
文件系统采用阿里云对象存储服务OSS。集群版本不同默认的Catalog名称不同,需要配置的参数也不同,各版本对应配置如下:
EMR-3.40及后续版本和EMR-5.6.0及后续版本
说明 默认的Catalog名称为iceberg。参数 描述 备注 spark.sql.extensions Spark SQL扩展模块。 固定值为org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions。 说明 Iceberg 0.11.0开始引入,仅Spark 3.x支持。spark.sql.catalog.iceberg.<catalog-name> Catalog名称。 固定值为org.apache.iceberg.spark.SparkCatalog。 spark.sql.catalog.<catalog-name>.catalog-impl Catalog的Class类名。 固定值为org.apache.iceberg.aliyun.dlf.hive.DlfCatalog。 EMR-3.39.x和EMR-5.5.x版本
说明 默认的Catalog名称为dlf。参数 描述 备注 spark.sql.extensions Spark SQL扩展模块。 固定值为org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions。 说明 Iceberg 0.11.0开始引入,仅Spark 3.x支持。spark.sql.catalog.<catalog-name> Catalog名称。 固定值为org.apache.iceberg.spark.SparkCatalog。 spark.sql.catalog.<catalog-name>.catalog-impl Catalog的Class类名。 固定值为org.apache.iceberg.aliyun.dlf.hive.DlfCatalog。 EMR-3.38.x版本和EMR-5.3.x~EMR-5.4.x版本(包含)
说明 默认的Catalog名称为dlf_catalog。参数 描述 备注 spark.sql.extensions Spark SQL扩展模块。 固定值为org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions。 说明 Iceberg 0.11.0开始引入,仅Spark 3.x支持。spark.sql.catalog.<catalog-name> Catalog名称。 固定值为org.apache.iceberg.spark.SparkCatalog。 spark.sql.catalog.<catalog-name>.catalog-impl Catalog的Class类名。 固定值为org.apache.iceberg.aliyun.dlf.DlfCatalog。 spark.sql.catalog.<catalog-name>.io-impl IO写入的Class名称。 固定值为org.apache.iceberg.hadoop.HadoopFileIO。 spark.sql.catalog.<catalog-name>.oss.endpoint 阿里云对象存储服务OSS的Endpoint。 请详情参见访问域名和数据中心。 推荐您为 oss.endpoint参数配置OSS的VPC Endpoint。例如,如果您选择的地域为cn-hangzhou地域,则 oss.endpoint需要配置为oss-cn-hangzhou-internal.aliyuncs.com。说明 如果您需要跨VPC访问OSS,则可以将 oss.endpoint配置为OSS的公网Endpoint。spark.sql.catalog.<catalog-name>.warehouse 表数据存放在OSS的路径。 无 spark.sql.catalog.<catalog-name>.access.key.id 阿里云账号的Access Key。 获取方法请参见获取AccessKey。 spark.sql.catalog.<catalog-name>.access.key.secret 阿里云账号的Access Secret。 获取方法请参见获取AccessKey。 spark.sql.catalog.<catalog-name>.dlf.catalog-id 阿里云账号的账号ID。 登录账号信息,请通过用户信息页面获取。 spark.sql.catalog.<catalog-name>.dlf.endpoint DLF服务的Endpoint。 推荐您设置 dlf.endpoint参数为DLF的VPC Endpoint。例如,如果您选择的地域为cn-hangzhou地域,则 dlf.endpoint参数需要配置为dlf-vpc.cn-hangzhou.aliyuncs.com。说明 您也可以使用DLF的公网Endpoint,如果您选择的地域为cn-hangzhou地域,则 dlf.endpoint参数需要配置为dlf.cn-hangzhou.aliyuncs.com。spark.sql.catalog.<catalog-name>.dlf.region-id DLF服务的地域名。 请和dlf.endpoint选择的地域保持一致。
Hive配置
请根据您创建的集群版本进行相应的配置:
EMR-3.39.0及后续版本和EMR-5.5.0及后续版本
说明 默认的Catalog名称为dlf。参数 描述 备注 iceberg.catalog.<catalog-name>.catalog-impl Catalog的Class类名。 固定值为org.apache.iceberg.aliyun.dlf.hive.DlfCatalog。 EMR-3.38.x版本和EMR-5.3.x~EMR-5.4.x版本(包含)
说明 默认的Catalog名称为dlf_catalog。参数 描述 备注 iceberg.catalog Catalog名称。 请填写为自定义的英文名。 iceberg.catalog.<catalog-name>.type Catalog类型。 固定值为custom。 iceberg.catalog.<catalog-name>.catalog-impl Catalog的Class类名。 固定值为org.apache.iceberg.aliyun.dlf.DlfCatalog。 iceberg.catalog.<catalog-name>.io-impl IO写入的Class名称。 固定值为org.apache.iceberg.hadoop.HadoopFileIO。 iceberg.catalog.<catalog-name>.warehouse 表数据存放在warehouse路径。 可以是HDFS路径或者阿里云对象存储服务OSS路径。 iceberg.catalog.<catalog-name>.access.key.id 阿里云账号的Access Key。 获取方法请参见获取AccessKey。 iceberg.catalog.<catalog-name>.access.key.secret 阿里云账号的Access Secret。 获取方法请参见获取AccessKey。 iceberg.catalog.<catalog-name>.dlf.catalog-id 阿里云账号的账号ID。 登录账号信息,请通过用户信息页面获取。 iceberg.catalog.<catalog-name>.dlf.endpoint DLF服务的Endpoint。 推荐您设置 dlf.endpoint参数为DLF的VPC Endpoint。例如,如果您选择的地域为cn-hangzhou地域,则 dlf.endpoint参数需要配置为dlf-vpc.cn-hangzhou.aliyuncs.com。说明 您也可以使用DLF的公网Endpoint,如果您选择的地域为cn-hangzhou地域,则 dlf.endpoint参数需要配置为dlf.cn-hangzhou.aliyuncs.com。iceberg.catalog.<catalog-name>.dlf.region-id DLF服务的地域名。 请和dlf.endpoint选择的地域保持一致。