本文為您介紹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選擇的地域保持一致。