Esta página explica como usar a funcionalidade de versões auxiliares com o Dataproc Metastore.
As versões auxiliares permitem-lhe associar duas versões diferentes de um metastore do Hive a um único serviço de Metastore do Dataproc. Esta configuração permite suportar vários motores de processamento de dados que precisam de ser executados em diferentes versões do metastore do Hive.
Por exemplo, usando versões auxiliares, pode associar vários clusters do Dataproc ao mesmo serviço do Dataproc Metastore. Nesta configuração, um cluster pode executar a versão 2.0 do Dataproc, enquanto o outro executa a versão 1.5 do Dataproc. O cluster do Dataproc 2.0 pode estabelecer ligação a um ponto final que expõe a versão 3.1.2 do Hive, enquanto o cluster do Dataproc 1.5 estabelece ligação a um ponto final que expõe a versão 2.3.6 do Hive.
Como funcionam as versões auxiliares
Quando ativa as versões auxiliares, o Dataproc Metastore expõe um ponto final separado para cada versão do Hive metastore. No entanto, ambos os pontos finais continuam a partilhar a mesma base de dados de metadados.
Esta funcionalidade não lhe permite usar diferentes conjuntos de metadados com um único serviço do Dataproc Metastore. Em alternativa, oferece uma forma de estender e melhorar a compatibilidade entre os seus serviços.
Considerações
Geral
Só pode criar uma versão auxiliar para cada serviço de Metastore do Dataproc.
A versão auxiliar tem de ser configurada para usar uma versão do Hive metastore inferior à versão principal.
A versão auxiliar mantém um ficheiro de registo separado da versão principal. Para depurar problemas do metastore do Hive, pode usar o Cloud Logging.
Suporte de funcionalidades
A versão auxiliar não suporta as seguintes funcionalidades:
- Importar metadados, Exportar metadados
Faça uma cópia de segurança a partir de um metastore, Restaure um metastore a partir de uma cópia de segurança
As funcionalidades relacionadas com metadados (importação/exportação/cópia de segurança/restauro) só podem ser usadas com a versão principal, uma vez que os metadados de back-end entre ambas as versões são partilhados.
Alguns métodos do Hive podem não ser compatíveis entre a versão auxiliar e a versão principal. Esta compatibilidade depende das versões do Hive que está a usar para as versões principal e auxiliar, bem como dos métodos compatíveis entre as versões do Hive.
Nem todas as funções de uma instância principal do Dataproc Metastore são suportadas pela versão auxiliar. Por exemplo, a inserção de registos numa tabela transacional do Hive não é suportada com uma interface de cliente do Hive 2 com uma versão auxiliar 2.3.6. No entanto, esta operação é suportada com um cliente Hive 3 que interage com a versão principal 3.1.2.
Se uma funcionalidade numa versão inferior do Hive for descontinuada numa versão superior do Hive, a versão auxiliar inferior correspondente não suporta a funcionalidade descontinuada. Por exemplo, o Hive 2 suporta índices, mas uma versão auxiliar que execute o Hive 2.3.6 não suporta o índice se a versão principal executar o Hive 3.1.2.
A criação de tabelas transacionais através da versão auxiliar ou a inserção de dados em tabelas transacionais na versão auxiliar é impedida.
Propriedades partilhadas entre versões
Quando cria uma versão auxiliar, algumas propriedades são partilhadas e permanecem comuns entre a versão auxiliar e a versão principal. As outras propriedades não são partilhadas e são separadas entre ambas as versões.
A tabela seguinte lista estas diferenças.
Propriedades | Comum | Separar |
---|---|---|
Ponto final | ✓ | |
Substituições da configuração do Hive* | ✓ | |
Configuração do Kerberos | ✓ | |
Protocolo de ponto final (Thrift/gRPC) | ✓ | |
Porta Thrift | ✓ | |
Contentor do Cloud Storage de artefactos | ✓ | |
Nível | ✓ | |
Período de manutenção | ✓ | |
Canal de lançamento | ✓ | |
Configuração de encriptação | ✓ | |
Tipo de base de dados | ✓ | |
Botão de sincronização do catálogo de dados | ✓ | |
Métrica de contagem de pedidos | ✓ | |
Configurações de rede | ✓ |
* As substituições da configuração do Hive permanecem separadas entre a versão auxiliar e a versão principal. No entanto, a versão auxiliar faz referência a uma lista unida das substituições (principal + auxiliar). Neste caso, a configuração auxiliar tem precedência sobre a configuração principal.
Antes de começar
Funções necessárias
Para receber a autorização de que precisa para criar um Dataproc Metastore que use versões auxiliares, peça ao seu administrador que lhe conceda as seguintes funções de IAM no seu projeto, com base no princípio do menor privilégio:
-
Conceda controlo total dos recursos do Dataproc Metastore (
roles/metastore.editor
) -
Conceda acesso total a todos os recursos de Metastore do Dataproc, incluindo a administração de políticas de IAM (
roles/metastore.admin
)
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Esta função predefinida contém a autorização
metastore.services.create
, que é necessária para
criar um Dataproc Metastore que use versões auxiliares.
Também pode obter esta autorização com funções personalizadas ou outras funções predefinidas.
Para mais informações sobre funções e autorizações específicas do Dataproc Metastore, consulte o artigo Gerir o acesso ao Dataproc com a IAM.Crie uma versão auxiliar para um novo serviço
O exemplo seguinte mostra uma versão abreviada dos passos que segue para ativar versões auxiliares. Para ver instruções passo a passo completas sobre todo o processo que tem de seguir, consulte o artigo Crie um Dataproc Metastore.
Consola
Na Google Cloud consola, abra a página Dataproc Metastore:
Na parte superior da página Dataproc Metastore, clique no botão Criar.
É apresentada a página Criar serviço.
Em Configuração da versão auxiliar, ative as versões auxiliares.
Clique em Adicionar versão auxiliar.
Introduza 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 restantes configurações para o seu serviço, conforme necessário.
Clique em Enviar.
CLI gcloud
Para criar um serviço 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 seu serviço do Dataproc Metastore.LOCATION
: a região na qual quer criar o seu serviço Dataproc Metastore.AUXILIARY_VERSIONS
: uma lista separada por vírgulas das versões do Hive metastore a implementar para a sua versão auxiliar. Apenas é suportada uma versão auxiliar. Use o seguinte formato"2.3.6"
.AUXILIARY_VERSIONS_FROM_FILE
: um caminho para um ficheiro 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 de 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 o seguinte:
SERVICE_ID
: o nome do seu novo serviço do Dataproc Metastore.PROJECT_ID
: o ID do projeto no qual está a criar o serviço Dataproc Metastore. Google CloudLOCATION
: a região onde o seu Dataproc Metastore reside.AUX_VERSIONS
: uma lista separada por vírgulas das versões do Hive metastore a implementar. Apenas é suportada uma versão auxiliar.
Atualize uma versão auxiliar de um serviço existente
As instruções seguintes mostram como atualizar um serviço Dataproc Metastore existente que usa versões auxiliares.
Quando executa uma operação de atualização, pode concluir as seguintes tarefas:
- Adicione uma nova versão auxiliar.
- Elimine uma versão auxiliar existente.
Adicione ou modifique substituições de uma versão auxiliar existente.
Consola
Na Google Cloud consola, abra a página Dataproc Metastore:
Na página Dataproc Metastore, clique no nome do serviço do serviço que quer atualizar.
É apresentada a página Detalhes do serviço.
No separador Configuração, clique em Editar.
É apresentada a página Editar serviço.
Na secção Configuração da versão auxiliar, clique no botão para ativar ou desativar as versões auxiliares.
Pode concluir as seguintes tarefas:
Para eliminar uma versão auxiliar existente, clique em Eliminar.
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 Dataproc Metastore 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 o seguinte:
SERVICE
: o nome do seu serviço do Dataproc Metastore.LOCATION
: a região onde o seu Dataproc Metastore reside.AUXILIARY_VERSIONS
: uma lista separada por vírgulas de versões auxiliares do metastore do Hive a implementar.AUXILIARY_VERSIONS_FROM_FILE
: um caminho para um ficheiro 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 bem-sucedida.
curl
Para atualizar um serviço do Dataproc Metastore 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 o seguinte:
SERVICE_ID
: o nome do seu serviço do Dataproc Metastore.PROJECT_ID
: o ID do projeto no qual está a criar o cluster de serviço do Dataproc Metastore. Google CloudLOCATION
: a região em que o seu Dataproc Metastore reside.AUX_VERSIONS
: uma lista separada por vírgulas de versões auxiliares do metastore do Hive a implementar.