O Dataproc Metastore é um serviço de armazenamento recuperação automática, sem servidor, metastore do Apache Hive (HMS) executado no Google Cloud.
Para gerenciar totalmente seus metadados, o metastore do Dataproc mapeia dados para o Apache Hive tabelas.
Versões compatíveis do Apache Hive
O metastore do Dataproc só oferece suporte a versões específicas do Apache Hive. Para mais informações, consulte a política da versão do Hive.
Como o Hive lida com metadados
Como o metastore do Dataproc é um metastore Hive, é importante entender como ele gerencia seus metadados.
Por padrão, todos os aplicativos Hive podem ter tabelas internas gerenciadas ou tabelas externas não gerenciadas. Ou seja, os metadados armazenados em um serviço do Metastore do Dataproc podem existir em tabelas internas e externas.
Ao modificar dados, um serviço do Dataproc Metastore (Hive) trata entre tabelas internas e externas.
- Tabelas internas. Gerencia metadados e dados de tabela.
- Tabelas externas. Só gerencia metadados.
Por exemplo, se você excluir uma definição de tabela usando a instrução DROP TABLE
do Hive SQL:
drop table foo
Tabelas internas. O metastore do Dataproc exclui todos os metadados. Os arquivos associados à tabela também serão excluídos.
Tabelas externas. O Metastore do Dataproc exclui apenas os metadados. Ela mantém os dados associados à tabela.
Diretório de depósito do Hive
O metastore do Dataproc usa o diretório de warehouse Hive para gerenciar nas tabelas internas. Os dados reais estão no diretório do warehouse do Hive armazenados.
Quando você usa um serviço do Dataproc Metastore, o armazenamento padrão do Hive diretório é um bucket do Cloud Storage. Somente metastore do Dataproc oferece suporte ao uso de buckets do Cloud Storage para o diretório de armazém. Em comparação, ele é diferente de um HMS no local, em que o armazenamento do Hive diretório aponta para um diretório local.
Esse bucket é criado automaticamente toda vez que você cria um
serviço Metastore do Dataproc. Para alterar esse valor, configure
uma substituição da configuração do Hive Metastore no hive.metastore.warehouse.dir
.
Buckets de artefatos do Cloud Storage
O bucket de artefatos armazena os artefatos do Dataproc Metastore, como metadados exportados e dados de tabelas internas gerenciadas.
Quando você cria um serviço Metastore do Dataproc, um bucket do Cloud Storage é criado automaticamente no projeto para você. Por padrão, o parâmetro de artefatos e o diretório de warehouse apontam para o mesmo bucket. Você não alterar o local do bucket de artefatos. No entanto, alterar o local do diretório do warehouse do Hive.
O bucket de artefatos está localizado no seguinte local:
gs://your-artifacts-bucket/hive-warehouse
- Por exemplo,
gs://gcs-your-project-name-0825d7b3-0627-4637-8fd0-cc6271d00eb4
Acessar o diretório do warehouse do Hive
Depois que o bucket for criado automaticamente, verifique se as contas de serviço do Dataproc têm permissão para acessar o diretório de armazenamento do Hive.
Para acessar o diretório de armazenamento no nível do objeto (por exemplo, gs://mybucket/object), conceda às contas de serviço do Dataproc acesso de leitura e gravação ao objeto de armazenamento do bucket usando o papel
roles/storage.objectAdmin
. Esse papel precisa ser definido no nível do bucket ou superior.Para acessar o diretório de warehouse ao usar uma pasta de nível superior (por exemplo, gs://mybucket), use o papel
roles/storage.storageAdmin
para conceder às contas de serviço do Dataproc acesso de leitura e gravação ao objeto de armazenamento do bucket.
Se o diretório do warehouse do Hive não estiver no mesmo projeto que o
Dataproc Metastore, certifique-se de que o metastore do Dataproc
o agente de serviço tem permissão para acessar o diretório do armazenamento do Hive. O serviço
agente para um projeto do metastore do Dataproc
service-PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com
:
Conceda ao agente de serviço acesso de leitura e gravação ao bucket usando o
Função roles/storage.objectAdmin
.
Encontre o diretório do warehouse do Hive
- Abra a página Metastore do Dataproc.
Clique no nome do seu serviço.
A página "Detalhes do serviço" é aberta.
Na tabela de configuração, encontre Substituições de configuração do Metastore > hive.metastore.warehouse.dir.
Encontre o valor que começa com
gs://
.Esse valor é o local do diretório do armazenamento do Hive.
Mudar o diretório de depósito do Hive
Para usar seu próprio bucket do Cloud Storage com o metastore do Dataproc: defina uma substituição da configuração do Hive Metastore para apontar para o novo local do bucket.
Se você alterar o diretório padrão do warehouse, siga estas recomendações.
Não use a raiz do bucket do Cloud Storage (
gs://mybucket
) para armazenar tabelas Hive.Verifique se a conta de serviço da VM do Dataproc Metastore tem permissão para acessar o diretório de armazenamento do Hive.
Para melhores resultados, use os buckets do Cloud Storage localizados na mesma região do serviço Metastore do Dataproc. Embora O metastore do Dataproc permite buckets entre regiões, os recursos colocalizados têm melhor desempenho. Por exemplo, um bucket multirregional da UE não funciona bem com um serviço
us-central1
. O acesso entre regiões resulta latência maior, falta de isolamento de falha regional e cobranças por tráfego entre regiões largura de banda da rede.
Para mudar o diretório do warehouse do Hive
- Abra a página Metastore do Dataproc.
Clique no nome do seu serviço.
A página "Detalhes do serviço" é aberta.
Na tabela de configuração, encontre a seção Modificações de configuração do metastore > hive.metastore.warehouse.dir.
Mude o valor
hive.metastore.warehouse.dir
para o local do novo do Google Cloud. Por exemplo,gs://my-bucket/path/to/location
.
Excluir o bucket
A exclusão do serviço Metastore do Dataproc não exclui automaticamente o bucket de artefatos do Cloud Storage. O bucket não é configurado automaticamente excluída porque pode conter dados pós-serviço úteis. Para excluir o bucket: executar uma operação de exclusão do Cloud Storage.