Depois de criar um serviço do metastore do Dataproc, você pode anexar qualquer um dos seguintes serviços:
- Um cluster do Serviço Gerenciado para Apache Spark.
- Uma instância autogerenciada do Apache Hive, uma instância do Apache Spark, ou um cluster do Presto.
Depois de conectar um desses serviços, ele usa o serviço do metastore do Dataproc como metastore do Hive durante a execução da consulta.
Antes de começar
- Ative o metastore do Dataproc no seu projeto.
- Crie um serviço Metastore do Dataproc.
- Entenda os requisitos de rede específicos do seu projeto.
Papéis necessários
Para receber as permissões necessárias para criar um metastore do Dataproc e um cluster do Serviço Gerenciado para Apache Spark, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Para conceder controle total dos recursos do metastore do Dataproc:
- Editor do metastore do Dataproc (
roles/metastore.editor) na conta de usuário ou de serviço - Administrador do metastore do Dataproc (
roles/metastore.admin) na conta de usuário ou de serviço
- Editor do metastore do Dataproc (
-
Para criar um cluster do Serviço Gerenciado para Apache Spark:
(
roles/dataproc.worker) na conta de serviço da VM do Serviço Gerenciado para Apache Spark -
Para conceder permissões de leitura e gravação ao diretório do data warehouse do Hive:
(
roles/storage.objectAdmin) na conta de serviço da VM do Serviço Gerenciado para Apache Spark
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos contêm as permissões necessárias para criar um metastore do Dataproc e um cluster do Serviço Gerenciado para Apache Spark. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para criar um metastore do Dataproc e um cluster do Serviço Gerenciado para Apache Spark:
- Para criar um metastore do Dataproc: metastore.services.create na conta de usuário ou de serviço
- Para criar um cluster do Serviço Gerenciado para Apache Spark: dataproc.clusters.create na conta de usuário ou de serviço
-
Para acessar o diretório do data warehouse do Hive:
orgpolicy.policy.get1,resourcemanager.projects.get,resourcemanager.projects.list,storage.objects.*,storage.multipartUploads.*na conta de serviço da VM do Serviço Gerenciado para Apache Spark
Essas permissões também podem ser concedidas com funções personalizadas 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 com o IAM.Clusters do Serviço Gerenciado para Apache Spark
O Serviço Gerenciado para Apache Spark é um serviço gerenciado do Apache Spark e do Apache Hadoop que permite aproveitar ferramentas de dados de código aberto para processamento em lote, consultas, streaming e machine learning.
Considerações
Antes de criar e anexar um cluster do Serviço Gerenciado para Apache Spark, verifique qual protocolo de endpoint o serviço do metastore do Dataproc está usando. Esse protocolo define como os clientes do metastore do Hive acessam os metadados armazenados no metastore do Dataproc. Essa escolha também pode afetar os recursos que podem ser integrados e usados com o serviço.
Apache Thrift
Se você usar o protocolo de endpoint do Apache Thrift, considere os seguintes requisitos de rede:
Por padrão, crie o cluster do Serviço Gerenciado para Apache Spark e o serviço do metastore do Dataproc na mesma rede. O cluster do Serviço Gerenciado para Apache Spark também pode usar uma sub-rede da rede do serviço do metastore do Dataproc.
Se o cluster do Serviço Gerenciado para Apache Spark pertencer a um projeto diferente da rede, você deve configurar as permissões de rede compartilhada.
Se o cluster do Serviço Gerenciado para Apache Spark pertencer a um projeto diferente do serviço do metastore do Dataproc, configure permissões adicionais antes de criar um cluster do Serviço Gerenciado para Apache Spark.
gRPC
Se você usar o protocolo de endpoint gRPC, considere os seguintes requisitos de rede:
Depois de criar um metastore do Dataproc usando o protocolo de endpoint gRPC, conceda papéis adicionais do IAM.
Se o cluster do Serviço Gerenciado para Apache Spark pertencer a um projeto diferente do serviço do metastore do Dataproc, configure permissões adicionais antes de criar um cluster do Serviço Gerenciado para Apache Spark.
Criar um cluster e anexar um metastore do Dataproc
As instruções a seguir mostram como criar um cluster do Serviço Gerenciado para Apache Spark e se conectar a ele de um serviço do metastore do Dataproc. Estas instruções pressupõem que você já tenha criado um serviço do metastore do Dataproc.
- Antes de criar o cluster do Serviço Gerenciado para Apache Spark, verifique se a imagem do Serviço Gerenciado para Apache Spark escolhida é compatível com a versão do metastore do Hive selecionada ao criar o metastore do Dataproc. Para mais informações, consulte a lista de versões de imagens do Serviço Gerenciado para Apache Spark.
Para otimizar a conectividade de rede, crie o cluster do Serviço Gerenciado para Apache Spark na mesma região do serviço do metastore do Dataproc.
Console
No Google Cloud console, abra a página Criar um cluster do Serviço Gerenciado para Apache Spark:
No campo Nome do cluster, insira um nome para o cluster.
Nos menus Região e Zona, selecione a mesma região em que você criou o serviço do metastore do Dataproc. Você pode escolher qualquer zona.
Clique na guia Personalizar cluster.
Na seção Configuração de rede, selecione a mesma rede em que você criou o serviço do metastore do Dataproc.
Na seção Metastore do Dataproc, selecione o serviço do metastore do Dataproc que você quer anexar. Se você ainda não criou um, selecione Criar novo serviço.
Opcional: se o serviço do metastore do Dataproc usar o protocolo de endpoint gRPC:
- Clique na guia Gerenciar segurança.
- Na seção Acesso ao projeto, selecione Ativar o escopo da plataforma de nuvem para este cluster.
Configure as opções de serviço restantes conforme necessário.
Para criar o cluster, clique em Criar.
O novo cluster aparecerá na lista de clusters. O status do cluster é listado como Provisionamento até que o cluster esteja pronto para uso. Quando estiver pronto para uso, o status mudará para Em execução.
CLI gcloud
Para criar um cluster e anexar um metastore do Dataproc, execute o
seguinte gcloud dataproc clusters create
comando:
gcloud dataproc clusters create CLUSTER_NAME \
--dataproc-metastore=projects/PROJECT_ID/locations/LOCATION/services/SERVICE \
--region=LOCATION \
--scopes=SCOPESSubstitua:
CLUSTER_NAME: o nome do novo cluster do Serviço Gerenciado para Apache Spark.PROJECT_ID: o ID do projeto em que você criou o serviço do metastore do Dataproc.LOCATION: a mesma região em que você criou o serviço do metastore do Dataproc.SERVICE: o nome do serviço do metastore do Dataproc que você está anexando ao cluster.SCOPES: (opcional) se o serviço do metastore do Dataproc usar o protocolo de endpoint gRPC, usecloud-platform.
REST
Siga as instruções da API para criar um cluster usando o APIs Explorer.
Anexar um cluster usando as propriedades do cluster do Serviço Gerenciado para Apache Spark
Também é possível anexar um cluster do Serviço Gerenciado para Apache Spark a um metastore do Dataproc
usando as propriedades do Serviço Gerenciado para Apache Spark.
Essas propriedades incluem o ENDPOINT_URI e o WAREHOUSE_DIR do metastore do Dataproc.
Use essas instruções se o serviço do metastore do Dataproc usar o Private Service Connect ou se você quiser anexar um cluster do Serviço Gerenciado para Apache Spark à versão auxiliar do serviço do metastore do Dataproc.
Há duas maneiras de anexar um cluster do Serviço Gerenciado para Apache Spark usando as propriedades ENDPOINT_URI e WAREHOUSE_DIR:
Opção 1: ao criar um cluster do Serviço Gerenciado para Apache Spark
Ao criar um cluster do Serviço Gerenciado para Apache Spark, use o flag de propriedades com a seguinte configuração do Hive.
gcloud dataproc clusters create CLUSTER_NAME \
--properties="hive:hive.metastore.uris=ENDPOINT_URI,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR/hive-warehouse"Substitua:
CLUSTER_NAME: o nome do novo cluster do Serviço Gerenciado para Apache Spark.ENDPOINT_URI: o URI do endpoint do serviço do metastore do Dataproc.WAREHOUSE_DIR: o local do diretório do data warehouse do Hive.
Opção 2: atualizar o arquivo hive-site.xml
Também é possível anexar um cluster do Serviço Gerenciado para Apache Spark modificando diretamente o arquivo hive-site.xml do cluster.
- Conecte-se ao cluster
.*-musando SSH. Abra o arquivo
/etc/hive/conf/hive-site.xmle modifique as seguintes linhas:<property> <name>hive.metastore.uris</name> <!-- Update this value. --> <value>ENDPOINT_URI</value> </property> <!-- Add this property entry. --> <property> <name>hive.metastore.warehouse.dir</name> <value>WAREHOUSE_DIR</value> </property>Substitua:
ENDPOINT_URI: o URI do endpoint do serviço do metastore do Dataproc.WAREHOUSE_DIR: o local do seu diretório do data warehouse do Hive.
Reinicie o HiveServer2:
sudo systemctl restart hive-server2.service
Clusters autogerenciados
Um cluster autogerenciado pode ser uma instância do Apache Hive, uma instância do Apache Spark, ou um cluster do Presto.
Anexar um cluster autogerenciado
Defina os seguintes valores no arquivo de configuração do cliente:
hive.metastore.uris=ENDPOINT_URIhive.metastore.warehouse.dir=WAREHOUSE_DIR
Substitua:
ENDPOINT_URI: o URI do endpoint do serviço do metastore do Dataproc.WAREHOUSE_DIR: o local do seu diretório do data warehouse do Hive.
A seguir
- Guia de início rápido sobre como implantar o metastore do Dataproc
- Visão geral do metastore do Dataproc
- Visão geral do Serviço Gerenciado para Apache Spark