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 do Hive a um único serviço do 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, usando versões auxiliares, é possível conectar vários clusters do Serviço Gerenciado para Apache Spark ao mesmo serviço do metastore do Dataproc. Nessa configuração, um cluster pode executar o Serviço Gerenciado para Apache Spark versão 2.0, enquanto o outro executa o Serviço Gerenciado para Apache Spark versão 1.5. O cluster do Serviço Gerenciado para Apache Spark 2.0 pode se conectar a um endpoint que expõe o Hive versão 3.1.2, enquanto o cluster do Serviço Gerenciado para Apache Spark 1.5 se conecta a um endpoint que expõe o Hive versão 2.3.6.
Como as versões auxiliares funcionam
Ao ativar 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 diferentes conjuntos de metadados com um único serviço do metastore do Dataproc. Em vez disso, ele oferece uma maneira de estender e melhorar a compatibilidade entre os serviços.
Considerações
Geral
Só é possível criar uma versão auxiliar para cada serviço do metastore do Dataproc.
A versão auxiliar precisa ser configurada para usar uma versão do metastore do Hive inferior à versão principal.
A versão auxiliar mantém um arquivo de registro separado da versão principal. Para depurar problemas do metastore do Hive, use o Cloud Logging.
Suporte a recursos
A versão auxiliar não oferece suporte aos seguintes recursos:
- Importar metadados, Exportar metadados
Fazer backup de um metastore, Restaurar um metastore de um backup
Os recursos relacionados a metadados (importação/exportação/backup/restauração) só podem ser usados com a versão principal, já que os metadados de back-end entre as duas versões são compartilhados.
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ê está usando para as versões principal e auxiliar e dos métodos compatíveis entre as versões do Hive.
Nem todas as funções de uma instância principal do metastore do Dataproc 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 do Hive 2 que interage com uma versão auxiliar 2.3.6. No entanto, essa operação é compatível com um cliente do Hive 3 que interage com a versão principal 3.1.2.
Se um recurso em uma versão inferior do Hive for descontinuado em uma versão superior do Hive, a versão auxiliar inferior correspondente não vai oferecer suporte ao recurso descontinuado. Por exemplo, o Hive 2 oferece suporte a índices, mas uma versão auxiliar que executa o Hive 2.3.6 não vai oferecer suporte ao índice se a versão principal executar o Hive 3.1.2.
A criação de tabelas transacionais usando a versão auxiliar ou a inserção de dados em tabelas transacionais na versão auxiliar é impedida.
Propriedades compartilhadas entre versões
Ao criar 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 são separadas entre as duas versões.
A tabela a seguir lista essas diferenças.
| Propriedades | Comum | Separado |
|---|---|---|
| Endpoint | ✓ | |
| Substituições de configuração do Hive* | ✓ | |
| Configuração do Kerberos | ✓ | |
| Protocolo de endpoint (Thrift/gRPC) | ✓ | |
| Porta Thrift | ✓ | |
| Bucket do Cloud Storage de artefatos | ✓ | |
| Nível | ✓ | |
| Janela de manutenção | ✓ | |
| Canal de lançamento | ✓ | |
| Configuração de criptografia | ✓ | |
| Tipo de banco de dados | ✓ | |
| Alternância de 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 principal. No entanto, a versão auxiliar faz referência a uma lista mesclada das substituições (principal + auxiliar). Nesse caso, a configuração auxiliar tem precedência sobre a configuração principal.
Antes de começar
Papéis necessários
Para receber a permissão necessária para criar um metastore do Dataproc que usa versões auxiliares, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto, com base no princípio de privilégio mínimo:
- Conceder controle total dos recursos do metastore do Dataproc (
roles/metastore.editor) - Conceder acesso total a todos os recursos do metastore do Dataproc, incluindo a administração da política do IAM (
roles/metastore.admin)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esse papel predefinido contém a
metastore.services.create
permissão,
que é necessária para
criar um metastore do Dataproc que usa versões auxiliares.
Também é possível receber essa permissão com papéis personalizados ou outros papéis predefinidos.
Para mais informações sobre papéis e permissões específicos do metastore do Dataproc, consulte Gerenciar o acesso do Serviço Gerenciado para Apache Spark com o IAM.Criar uma versão auxiliar para um novo serviço
O exemplo a seguir mostra uma versão abreviada das etapas que você segue para ativar as versões auxiliares. Para instruções completas sobre todo o processo, consulte Criar um metastore do Dataproc.
Console
No Google Cloud console do, abra a página Metastore do Dataproc:
Na parte de cima da página Metastore do Dataproc, clique no botão Criar.
A página Criar serviço é aberta.
Em Configuração da versão auxiliar, ative as versões auxiliares.
Clique em Adicionar versão auxiliar.
Insira um nome para a versão auxiliar.
Selecione uma versão para a versão auxiliar.
Opcional: para aplicar um mapeamento à versão auxiliar, clique em + Adicionar substituições.
Clique em Concluído.
Escolha as configurações restantes para o serviço, conforme necessário.
Clique em Enviar.
CLI gcloud
Para criar um serviço do metastore do Dataproc com uma versão auxiliar, execute um dos seguintes
gcloud metastore services createcomandos: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 a serem implantadas para a versão auxiliar. Só é possível usar 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 mais informações e um exemplo, consulte a documentação do SDK.
Verifique se a criação foi bem-sucedida.
curl
Para criar um serviço do metastore do Dataproc 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 Google Cloud ID do projeto em que você está criando o 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 das versões do metastore do Hive a serem implantadas. Só é possível usar uma versão auxiliar.
Atualizar uma versão auxiliar para um serviço atual
As instruções a seguir mostram como atualizar um serviço do metastore do Dataproc que usa versões auxiliares.
Ao executar uma operação de atualização, é possível concluir as seguintes tarefas:
- Adicionar uma nova versão auxiliar.
- Excluir uma versão auxiliar atual.
Adicionar ou modificar substituições de uma versão auxiliar atual.
Console
No Google Cloud console do, abra a página Metastore do Dataproc:
Na página Metastore do Dataproc, clique no nome do serviço que você quer atualizar.
A página Detalhes do serviço é aberta.
Na guia Configuração, clique em Editar.
A página Editar serviço é aberta.
Na seção Configuração da versão auxiliar, clique na alternância para ativar ou desativar as versões auxiliares.
É possível concluir as seguintes tarefas:
Para excluir uma versão auxiliar atual, clique em Excluir.
Para adicionar uma nova versão auxiliar, clique em Adicionar versão auxiliar.
Para aplicar um mapeamento de substituição a uma versão auxiliar, clique em + Adicionar substituições.
Clique em Enviar.
CLI gcloud
Para atualizar um serviço do metastore do Dataproc que usa uma versão auxiliar, execute um dos seguintes
gcloud metastore services updatecomandos: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 das versões auxiliares do metastore do Hive a serem implantadas.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.
Verifique se a atualização foi concluída.
curl
Para atualizar um serviço do metastore do Dataproc que usa uma versão auxiliar, use o patch método.
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 Google Cloud ID do projeto 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 das versões auxiliares do metastore do Hive a serem implantadas.