本文为您介绍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选择的地域保持一致。