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