数据湖元数据配置

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