Este tópico descreve como configurar os metadados do Data Lake Formation (DLF) para tabelas Iceberg.
Há suporte para as seguintes configurações:
Configuração do Spark
Esta configuração utiliza o Object Storage Service (OSS) como sistema de arquivos. O nome do catálogo padrão e os parâmetros obrigatórios variam de acordo com a versão do cluster do E-MapReduce (EMR). As seções a seguir descrevem as configurações para versões específicas.
-
EMR-3.40 e posteriores, e EMR-5.6.0 e posteriores
NotaO nome do catálogo padrão é
iceberg.Parâmetro
Descrição
Observações
spark.sql.extensions
O módulo de extensão do Spark SQL.
Defina este parâmetro como org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions.
NotaIntroduzido no Iceberg 0.11.0, este parâmetro é compatível apenas com o Spark 3.x.
spark.sql.catalog.<catalog-name>
O nome do catálogo.
Defina este parâmetro como org.apache.iceberg.spark.SparkCatalog.
spark.sql.catalog.<catalog-name>.catalog-impl
A classe de implementação do catálogo.
Defina este parâmetro como org.apache.iceberg.aliyun.dlf.hive.DlfCatalog.
-
EMR-3.39.x e EMR-5.5.x
NotaO nome do catálogo padrão é
dlf.Parâmetro
Descrição
Observações
spark.sql.extensions
O módulo de extensão do Spark SQL.
Defina este parâmetro como org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions.
NotaIntroduzido no Iceberg 0.11.0, este parâmetro é compatível apenas com o Spark 3.x.
spark.sql.catalog.<catalog-name>
O nome do catálogo.
Defina este parâmetro como org.apache.iceberg.spark.SparkCatalog.
spark.sql.catalog.<catalog-name>.catalog-impl
A classe de implementação do catálogo.
Defina este parâmetro como org.apache.iceberg.aliyun.dlf.hive.DlfCatalog.
-
EMR-3.38.x e EMR-5.3.x a EMR-5.4.x (inclusivo)
NotaO nome do catálogo padrão é
dlf_catalog.Parâmetro
Descrição
Observações
spark.sql.extensions
O módulo de extensão do Spark SQL.
Defina este parâmetro como org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions.
NotaIntroduzido no Iceberg 0.11.0, este parâmetro é compatível apenas com o Spark 3.x.
spark.sql.catalog.<catalog-name>
O nome do catálogo.
Defina este parâmetro como org.apache.iceberg.spark.SparkCatalog.
spark.sql.catalog.<catalog-name>.catalog-impl
A classe de implementação do catálogo.
Defina este parâmetro como org.apache.iceberg.aliyun.dlf.DlfCatalog.
spark.sql.catalog.<catalog-name>.io-impl
A classe de implementação de E/S.
Defina este parâmetro como org.apache.iceberg.hadoop.HadoopFileIO.
spark.sql.catalog.<catalog-name>.oss.endpoint
O endpoint do Object Storage Service (OSS).
Para mais informações, consulte Regions and endpoints.
Recomendamos definir oss.endpoint como o endpoint da VPC do OSS. Por exemplo, se a sua região for China (Hangzhou), defina oss.endpoint como
oss-cn-hangzhou-internal.aliyuncs.com.NotaAo acessar o OSS entre VPCs, defina oss.endpoint como o endpoint público do OSS.
spark.sql.catalog.<catalog-name>.warehouse
O caminho do OSS onde os dados da tabela são armazenados.
Nenhum.
spark.sql.catalog.<catalog-name>.access.key.id
O AccessKey ID da sua conta Alibaba Cloud.
Para mais informações, consulte Obtain an AccessKey pair.
spark.sql.catalog.<catalog-name>.access.key.secret
O AccessKey secret da sua conta Alibaba Cloud.
Para mais informações, consulte Obtain an AccessKey pair.
spark.sql.catalog.<catalog-name>.dlf.catalog-id
O ID da sua conta Alibaba Cloud.
Para encontrar o ID da sua conta, acesse a página Security Settings. Você também pode fazer logon no console do Alibaba Cloud e encontrar seu Account ID na página Account Management.
spark.sql.catalog.<catalog-name>.dlf.endpoint
O endpoint do service DLF.
Recomendamos definir dlf.endpoint como o endpoint da VPC do DLF. Por exemplo, se a sua região for China (Hangzhou), defina dlf.endpoint como
dlf-vpc.cn-hangzhou.aliyuncs.com.NotaTambém é possível usar o endpoint público do DLF. Por exemplo, se a sua região for China (Hangzhou), defina dlf.endpoint como
dlf.cn-hangzhou.aliyuncs.com.spark.sql.catalog.<catalog-name>.dlf.region-id
O ID da região do service DLF.
Certifique-se de que esta região corresponda àquela especificada para dlf.endpoint.
Configuração do Hive
Configure os parâmetros com base na versão do seu cluster.
-
EMR-3.39.0 e posteriores, e EMR-5.5.0 e posteriores
NotaO nome do catálogo padrão é
dlf.Parâmetro
Descrição
Observações
iceberg.catalog.<catalog-name>.catalog-impl
A classe de implementação do catálogo.
Defina este parâmetro como org.apache.iceberg.aliyun.dlf.hive.DlfCatalog.
-
EMR-3.38.x e EMR-5.3.x a EMR-5.4.x (inclusivo)
NotaO nome do catálogo padrão é
dlf_catalog.Parâmetro
Descrição
Observações
iceberg.catalog
O nome do catálogo.
Especifique um nome personalizado.
iceberg.catalog.<catalog-name>.type
O tipo de catálogo.
Defina este parâmetro como custom.
iceberg.catalog.<catalog-name>.catalog-impl
A classe de implementação do catálogo.
Defina este parâmetro como org.apache.iceberg.aliyun.dlf.DlfCatalog.
iceberg.catalog.<catalog-name>.io-impl
A classe de implementação de E/S.
Defina este parâmetro como org.apache.iceberg.hadoop.HadoopFileIO.
iceberg.catalog.<catalog-name>.warehouse
O caminho do warehouse onde os dados da tabela são armazenados.
Especifique um caminho HDFS ou um caminho OSS.
iceberg.catalog.<catalog-name>.access.key.id
O AccessKey ID da sua conta Alibaba Cloud.
Para mais informações, consulte Obtain an AccessKey pair.
iceberg.catalog.<catalog-name>.access.key.secret
O AccessKey secret da sua conta Alibaba Cloud.
Para mais informações, consulte Obtain an AccessKey pair.
iceberg.catalog.<catalog-name>.dlf.catalog-id
O ID da sua conta Alibaba Cloud.
Para encontrar o ID da sua conta, acesse a página Security Settings.
iceberg.catalog.<catalog-name>.dlf.endpoint
O endpoint do service DLF.
Recomendamos definir dlf.endpoint como o endpoint da VPC do DLF. Por exemplo, se a sua região for China (Hangzhou), defina dlf.endpoint como
dlf-vpc.cn-hangzhou.aliyuncs.com.NotaTambém é possível usar o endpoint público do DLF. Por exemplo, se a sua região for China (Hangzhou), defina dlf.endpoint como
dlf.cn-hangzhou.aliyuncs.com.iceberg.catalog.<catalog-name>.dlf.region-id
O ID da região do service DLF.
Certifique-se de que esta região corresponda àquela especificada para dlf.endpoint.