本文為您介紹Iceberg表使用資料湖中繼資料的必要配置。
支援以下配置:
Spark配置
檔案系統採用阿里雲Object Storage Service服務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
阿里雲Object Storage Service服務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路徑或者阿里雲Object Storage Service服務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選擇的地區保持一致。