Versões auxiliares

Nesta página, explicamos como usar o recurso de versões auxiliares com o Metastore do Dataproc.

As versões auxiliares permitem conectar duas versões diferentes de um metastore Hive a um único serviço Metastore do Dataproc. Essa configuração permite oferecer suporte a vários mecanismos de processamento de dados que precisam ser executados em diferentes versões do metastore do Hive.

Por exemplo, com o uso de versões auxiliares, é possível conectar vários clusters do Dataproc ao mesmo serviço Metastore do Dataproc. Nessa configuração, um cluster pode executar o Dataproc versão 2.0 enquanto o outro executa o Dataproc versão 1.5. O cluster do Dataproc 2.0 pode se conectar a um endpoint que expõe o Hive versão 3.1.2, enquanto o cluster do Dataproc 1.5 se conecta a um endpoint que expõe o Hive versão 2.3.6.

Como as versões auxiliares funcionam

Quando você ativa as versões auxiliares, o metastore do Dataproc expõe um endpoint separado para cada versão do metastore do Hive. No entanto, os dois endpoints continuam compartilhando o mesmo banco de dados de metadados.

Esse recurso não permite usar conjuntos diferentes de metadados com um único serviço do Dataproc Metastore. Em vez disso, ela oferece uma maneira de ampliar e melhorar a compatibilidade entre os serviços.

Considerações

Geral

  • É possível criar apenas uma versão auxiliar para cada serviço do Metastore do Dataproc.

  • A versão auxiliar precisa ser configurada para usar uma versão de metastore Hive inferior à versão primária.

  • A versão auxiliar mantém um arquivo de registro separado do que a versão principal. Para depurar problemas do metastore do Hive, use o Cloud Logging.

Suporte a recursos

  • A versão auxiliar não é compatível com os seguintes recursos:

  • Alguns métodos do Hive podem não ser compatíveis entre a versão auxiliar e a principal. Essa compatibilidade depende das versões do Hive que você usa para as versões primária e auxiliar e dos métodos compatíveis entre as versões do Hive.

  • Nem todas as funções de uma instância primária do Dataproc Metastore são compatíveis com a versão auxiliar. Por exemplo, a inserção de registros em uma tabela transacional do Hive não é compatível com um cliente Hive 2 que interage com uma versão auxiliar 2.3.6. No entanto, essa operação é compatível com a interface do cliente Hive 3 com a versão principal 3.1.2.

    Se um recurso em uma versão anterior do Hive for descontinuado em uma versão mais recente do Hive, a versão auxiliar inferior correspondente não será compatível com o recurso descontinuado. Por exemplo, o Hive 2 é compatível com índices, mas uma versão auxiliar que executa o Hive 2.3.6 não será compatível com o índice se a versão principal executar o Hive 3.1.2.

  • Não é possível criar tabelas transacionais usando a versão auxiliar ou inserir dados em tabelas transacionais na versão auxiliar.

Propriedades compartilhadas entre versões

Quando você cria uma versão auxiliar, algumas propriedades são compartilhadas e permanecem comuns entre a versão auxiliar e a principal. Outras propriedades não são compartilhadas e ficam separadas nas duas versões.

A tabela a seguir lista essas diferenças.

Propriedades Nome Separados
Endpoint
Substituições de configurações do Hive*
Configuração do Kerberos
Protocolo do endpoint (Thrift/gRPC)
Porta Thrift
Bucket de artefatos do Cloud Storage
Nível
Janela de manutenção
Canal de lançamento
Configuração de criptografia
Tipo de banco de dados
Ativar ou desativar a sincronização do Data Catalog
Métrica de contagem de solicitações
Configurações de rede

* As substituições de configuração do Hive permanecem separadas entre a versão auxiliar e a primária. No entanto, a versão auxiliar faz referência a uma lista mesclada de substituições (principal + auxiliar). Nesse caso, a configuração auxiliar tem precedência sobre a configuração primária.

Antes de começar

Papéis necessários

Para conseguir a permissão necessária para criar um metastore do Dataproc que use versões auxiliares, peça ao administrador para conceder a você os seguintes papéis do IAM em seu projeto, com base no princípio de privilégio mínimo:

Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Esse papel predefinido contém a permissão metastore.services.create, que é necessária para criar um Metastore do Dataproc que usa versões auxiliares.

Talvez você também consiga essa permissão com papéis personalizados ou outros papéis predefinidos.

Para mais informações sobre permissões e papéis específicos do metastore do Dataproc, consulte Gerenciar o acesso ao Dataproc com o IAM.

Criar uma versão auxiliar para um novo serviço

O exemplo a seguir mostra uma versão abreviada das etapas a serem seguidas para ativar as versões auxiliares. Para instruções completas sobre todo o processo a ser seguido, consulte Criar um Dataproc Metastore.

Console

  1. No console do Google Cloud, abra a página do metastore do Dataproc:

    Abrir o metastore do Dataproc

  2. Na parte superior da página Metastore do Dataproc, clique no botão Criar.

    A página Criar serviço é aberta.

  3. Em Configuração da versão auxiliar, ative as versões auxiliares.

  4. Clique em Adicionar versão auxiliar.

    1. Insira um nome para sua versão auxiliar.

    2. Selecione uma versão para sua versão auxiliar.

    3. Opcional: para aplicar um mapeamento à versão auxiliar, clique em + Adicionar substituições.

    4. Clique em Concluído.

  5. Escolha as configurações restantes para seu serviço, conforme necessário.

  6. Clique em Enviar.

CLI da gcloud

  1. Para criar um serviço do Dataproc Metastore com uma versão auxiliar, execute um dos seguintes comandos gcloud metastore services create:

    gcloud metastore services create SERVICE \
        --location=LOCATION \
        --auxiliary-versions=AUXILIARY_VERSIONS, ...
    
    • SERVICE: o nome do serviço do Metastore do Dataproc.
    • LOCATION: a região em que você quer criar o serviço do Metastore do Dataproc.
    • AUXILIARY_VERSIONS: uma lista separada por vírgulas das versões do metastore do Hive que serão implantadas para sua versão auxiliar. Há suporte para apenas uma versão auxiliar. Use o seguinte formato "2.3.6".
    • AUXILIARY_VERSIONS_FROM_FILE: um caminho para um arquivo YAML que contém a configuração das versões auxiliares. Para ver mais informações e um exemplo, consulte a documentação do SDK.
  2. Verifique se a criação foi bem-sucedida.

curl

Para criar um serviço do Dataproc Metastore com uma versão auxiliar, use o método create.

curl -X POST -s -i \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -d '{"network":"projects/PROJECT_ID/global/networks/default", "port": 9083, "hive_metastore_config": {"auxiliary_versions": {"aux-version1": {"version": "AUX_VERSION"} } } }' \
     -H "Content-Type:application/json" \
     https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services?service_id=SERVICE_ID

Substitua:

  • SERVICE_ID: o nome do novo serviço do Metastore do Dataproc.
  • PROJECT_ID: o ID do projeto do Google Cloud em que você está criando o serviço Metastore do Dataproc.
  • LOCATION: a região em que o Metastore do Dataproc reside.
  • AUX_VERSIONS: uma lista separada por vírgulas de versões do metastore do Hive para implantar. Há suporte para apenas uma versão auxiliar.

Atualizar uma versão auxiliar de um serviço atual

As instruções a seguir mostram como atualizar um serviço existente do Metastore do Dataproc que usa versões auxiliares.

Ao executar uma operação de atualização, é possível concluir as seguintes tarefas:

  • Adiciona uma nova versão auxiliar.
  • Exclui uma versão auxiliar existente.
  • Adicione ou modifique substituições de uma versão auxiliar atual.

Console

  1. No console do Google Cloud, abra a página do metastore do Dataproc:

    Abrir o metastore do Dataproc

  2. Na página Metastore do Dataproc, clique no nome do serviço que você quer atualizar.

    A página Detalhes do serviço é aberta.

  3. Na guia Configuração, clique em Editar.

    A página Editar serviço é aberta.

  4. Na seção Configuração da versão auxiliar, clique no botão para ativar ou desativar as versões auxiliares.

    Você pode concluir as seguintes tarefas:

    1. Para excluir uma versão auxiliar atual, clique em Excluir.

    2. Para adicionar uma nova versão auxiliar, clique em Adicionar versão auxiliar.

    3. Para aplicar um mapeamento de substituição a uma versão auxiliar, clique em + Add Overrides.

  5. Clique em Enviar.

CLI da gcloud

  1. Para atualizar um serviço Metastore do Dataproc que usa uma versão auxiliar, execute um dos seguintes comandos gcloud metastore services update:

    gcloud metastore services update SERVICE \
       --location=LOCATION \
       --add-auxiliary-versions=AUXILIARY_VERSIONS, ...
    

    ou

    gcloud metastore services update SERVICE \
       --location=LOCATION \
       --update-auxiliary-versions-from-file=AUXILIARY_VERSIONS_FROM_FILE
    

    Substitua:

    • SERVICE: o nome do serviço do Metastore do Dataproc.
    • LOCATION: a região em que o Metastore do Dataproc reside.
    • AUXILIARY_VERSIONS: uma lista separada por vírgulas de versões auxiliares de metastore do Hive a serem implantados.
    • AUXILIARY_VERSIONS_FROM_FILE: um caminho para um arquivo YAML que contém a configuração das versões auxiliares. Para mais informações e um exemplo, consulte a documentação do SDK.
  2. Verifique se a atualização foi concluída.

curl

Para atualizar um serviço Metastore do Dataproc que usa uma versão auxiliar, use o método patch.

curl -X PATCH -s -i \
   -H "Authorization: Bearer $(gcloud auth print-access-token)" \
   -d '{"hive_metastore_config": {"auxiliary_versions": {"aux-version1": {"version": "AUX_VERSION} } } }' \
   -H "Content-Type:application/json" \
   https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/SERVICE_ID?update_mask=hive_metastore_config.auxiliary_versions

Substitua:

  • SERVICE_ID: o nome do serviço do Metastore do Dataproc.
  • PROJECT_ID: o ID do projeto do Google Cloud em que você está criando o cluster de serviço do Metastore do Dataproc.
  • LOCATION: a região em que o Metastore do Dataproc reside.
  • AUX_VERSIONS: uma lista separada por vírgulas de versões auxiliares de metastore do Hive a serem implantados.

A seguir