Este tópico descreve como configurar os metadados do Data Lake Formation (DLF) para tabelas Iceberg.
Configurações compatíveis:
Configuração do Spark
Esta configuração utiliza o Object Storage Service (OSS) como sistema de arquivos. O nome padrão do catálogo e os parâmetros obrigatórios variam conforme a versão do cluster E-MapReduce (EMR). As seções a seguir detalham as configurações para versões específicas.
-
EMR-3.40 ou posterior e EMR-5.6.0 ou posterior
NotaO nome padrão do catálogo é
iceberg.Parâmetro
Descrição
Observações
spark.sql.extensions
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, com suporte apenas no Spark 3.x.
spark.sql.catalog.<catalog-name>
Nome do catálogo.
Defina este parâmetro como org.apache.iceberg.spark.SparkCatalog.
spark.sql.catalog.<catalog-name>.catalog-impl
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 padrão do catálogo é
dlf.Parâmetro
Descrição
Observações
spark.sql.extensions
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, com suporte apenas no Spark 3.x.
spark.sql.catalog.<catalog-name>
Nome do catálogo.
Defina este parâmetro como org.apache.iceberg.spark.SparkCatalog.
spark.sql.catalog.<catalog-name>.catalog-impl
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 até EMR-5.4.x (inclusive)
NotaO nome padrão do catálogo é
dlf_catalog.Parâmetro
Descrição
Observações
spark.sql.extensions
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, com suporte apenas no Spark 3.x.
spark.sql.catalog.<catalog-name>
Nome do catálogo.
Defina este parâmetro como org.apache.iceberg.spark.SparkCatalog.
spark.sql.catalog.<catalog-name>.catalog-impl
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
Classe de implementação de E/S.
Defina este parâmetro como org.apache.iceberg.hadoop.HadoopFileIO.
spark.sql.catalog.<catalog-name>.oss.endpoint
Endpoint do Object Storage Service (OSS).
Para mais informações, consulte Regiões e endpoints.
Recomendamos definir oss.endpoint como o endpoint VPC do OSS. Por exemplo, se a região for China (Hangzhou), defina oss.endpoint como
oss-cn-hangzhou-internal.aliyuncs.com.NotaPara acessar o OSS entre VPCs diferentes, defina oss.endpoint como o endpoint público do OSS.
spark.sql.catalog.<catalog-name>.warehouse
Caminho do OSS onde os dados da tabela são armazenados.
Nenhuma.
spark.sql.catalog.<catalog-name>.access.key.id
AccessKey ID da sua conta Alibaba Cloud.
Para mais informações, consulte Obter um par de AccessKey.
spark.sql.catalog.<catalog-name>.access.key.secret
AccessKey Secret da sua conta Alibaba Cloud.
Para mais informações, consulte Obter um par de AccessKey.
spark.sql.catalog.<catalog-name>.dlf.catalog-id
ID da sua conta Alibaba Cloud.
Para localizar o ID da conta, acesse a página Security Settings. Também é possível fazer login no console Alibaba Cloud e verificar o Account ID na página Account Management.
spark.sql.catalog.<catalog-name>.dlf.endpoint
Endpoint do serviço DLF.
Recomendamos definir dlf.endpoint como o endpoint VPC do DLF. Por exemplo, se a 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 região for China (Hangzhou), defina dlf.endpoint como
dlf.cn-hangzhou.aliyuncs.com.spark.sql.catalog.<catalog-name>.dlf.region-id
ID da região do serviço DLF.
Certifique-se de que esta região corresponda àquela especificada para dlf.endpoint.
Configuração do Hive
Configure os parâmetros de acordo com a versão do cluster.
-
EMR-3.39.0 ou posterior e EMR-5.5.0 ou posterior
NotaO nome padrão do catálogo é
dlf.Parâmetro
Descrição
Observações
iceberg.catalog.<catalog-name>.catalog-impl
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 até EMR-5.4.x (inclusive)
NotaO nome padrão do catálogo é
dlf_catalog.Parâmetro
Descrição
Observações
iceberg.catalog
Nome do catálogo.
Especifique um nome personalizado.
iceberg.catalog.<catalog-name>.type
Tipo do catálogo.
Defina este parâmetro como custom.
iceberg.catalog.<catalog-name>.catalog-impl
Classe de implementação do catálogo.
Defina este parâmetro como org.apache.iceberg.aliyun.dlf.DlfCatalog.
iceberg.catalog.<catalog-name>.io-impl
Classe de implementação de E/S.
Defina este parâmetro como org.apache.iceberg.hadoop.HadoopFileIO.
iceberg.catalog.<catalog-name>.warehouse
Caminho do warehouse onde os dados da tabela são armazenados.
Especifique um caminho HDFS ou OSS.
iceberg.catalog.<catalog-name>.access.key.id
AccessKey ID da sua conta Alibaba Cloud.
Para mais informações, consulte Obter um par de AccessKey.
iceberg.catalog.<catalog-name>.access.key.secret
AccessKey Secret da sua conta Alibaba Cloud.
Para mais informações, consulte Obter um par de AccessKey.
iceberg.catalog.<catalog-name>.dlf.catalog-id
ID da sua conta Alibaba Cloud.
Para localizar o ID da conta, acesse a página Security Settings.
iceberg.catalog.<catalog-name>.dlf.endpoint
Endpoint do serviço DLF.
Recomendamos definir dlf.endpoint como o endpoint VPC do DLF. Por exemplo, se a 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 região for China (Hangzhou), defina dlf.endpoint como
dlf.cn-hangzhou.aliyuncs.com.iceberg.catalog.<catalog-name>.dlf.region-id
ID da região do serviço DLF.
Certifique-se de que esta região corresponda àquela especificada para dlf.endpoint.