Anexar um cluster do Dataproc ou um cluster autogerenciado

Depois de criar um serviço Metastore do Dataproc, é possível anexar qualquer um dos seguintes serviços:

  • um cluster do Dataproc
  • Uma instância autogerenciada do Apache Hive, uma instância do Apache Spark ou um cluster do Presto (links em inglês).

Depois de conectar um desses serviços, ele usa seu serviço Metastore do Dataproc como metastore Hive durante a execução da consulta.

Antes de começar

Papéis necessários

Para receber as permissões necessárias para criar um metastore e um cluster do Dataproc, peça ao administrador para conceder a você os seguintes papéis do IAM:

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

Esses papéis predefinidos contêm as permissões necessárias para criar um metastore do Dataproc e um cluster do Dataproc. Para conferir 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 e um cluster do Dataproc:

  • Para criar um metastore do Dataproc: metastore.services.create na conta de usuário ou de serviço
  • Para criar um cluster do Dataproc: dataproc.clusters.create na conta de usuário ou de serviço
  • Para acessar o diretório de warehouse do Hive: orgpolicy.policy.get1,resourcemanager.projects.get,resourcemanager.projects.list,storage.objects.*,storage.multipartUploads.* na conta de serviço da VM do Dataproc

Talvez você também consiga receber essas permissões com papéis personalizados ou outros papéis predefinidos.

Para saber mais sobre papéis e permissões específicos do Dataproc Metastore, consulte Gerenciar acesso com o IAM.

Clusters do Dataproc

O Dataproc é um serviço gerenciado do Apache Spark e do Apache Hadoop que permite aproveitar as ferramentas de dados de código aberto para processamento em lote, consulta, streaming e machine learning.

Considerações

Antes de criar e anexar um cluster do Dataproc, verifique qual protocolo de endpoint seu serviço do Dataproc Metastore está usando. Esse protocolo define como os clientes do Hive Metastore acessam os metadados armazenados no seu metastore do Dataproc. Essa escolha também pode afetar os recursos que você pode integrar e usar com o serviço.

Apache thrift

Se você usa o protocolo de endpoint do Apache Thrift, considere os seguintes requisitos de rede:

  • Por padrão, você precisa criar o cluster do Dataproc e o serviço do Metastore do Dataproc na mesma rede. Seu cluster do Dataproc também pode usar uma sub-rede da rede do serviço Metastore do Dataproc.

  • Se o cluster do Dataproc pertencer a um projeto diferente da rede, configure as permissões de rede compartilhada.

  • Se o cluster do Dataproc pertencer a um projeto diferente do serviço do Metastore do Dataproc, será necessário configurar permissões adicionais antes de criar um cluster do Dataproc.

gRPC

Se você usa o protocolo de endpoint do gRPC, considere os seguintes requisitos de rede:

Criar um cluster e anexar um metastore do Dataproc

As instruções a seguir mostram como criar um cluster do Dataproc e se conectar a ele a partir de um serviço Metastore do Dataproc. Estas instruções presumem que você já criou um serviço Metastore do Dataproc.

  • Antes de criar o cluster do Dataproc, verifique se a imagem do Dataproc escolhida é compatível com a versão do metastore Hive que você selecionou quando criou o Metastore do Dataproc. Para mais informações, consulte a Lista de versões de imagem do Dataproc.
  • Para otimizar a conectividade de rede, crie o cluster do Dataproc na mesma região do serviço Metastore do Dataproc.

Console

  1. No console do Google Cloud, abra a página Criar um cluster do Dataproc:

    Abra Criar um cluster.

  2. No campo Nome do cluster, insira o nome do cluster.

  3. Para os menus Região e Zona, selecione a mesma região em que você criou o serviço Metastore do Dataproc. Você pode escolher qualquer zona.

  4. Clique na guia Personalizar cluster.

  5. Na seção Configuração de rede, selecione a mesma rede em que você criou o serviço Metastore do Dataproc.

  6. 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.

  7. Opcional: se o serviço Metastore do Dataproc usar o protocolo de endpoint do gRPC:

    1. Clique na guia Manage Security.
    2. Na seção Acessos do projeto, selecione Ativa o escopo da plataforma de nuvem para este cluster.
  8. Configure as opções de serviço restantes conforme necessário.

  9. Para criar o cluster, clique em Criar.

    O novo cluster aparecerá na lista de clusters. O status do cluster será listado como Provisionando até que o cluster esteja pronto para uso. Quando estiver pronto para uso, o status mudará para Em execução.

CLI da gcloud

Para criar um cluster e anexar um metastore do Dataproc, execute o seguinte comando gcloud dataproc clusters create:

gcloud dataproc clusters create CLUSTER_NAME \
    --dataproc-metastore=projects/PROJECT_ID/locations/LOCATION/services/SERVICE \
    --region=LOCATION \
    --scopes=SCOPES

Substitua:

  • CLUSTER_NAME: o nome do novo cluster do Dataproc.
  • PROJECT_ID: o ID do projeto em que você criou o serviço 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 Metastore do Dataproc usar o protocolo de endpoint gRPC, use cloud-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 Dataproc

Também é possível anexar um cluster do Dataproc a um metastore do Dataproc usando as propriedades do Dataproc. Essas propriedades incluem o ENDPOINT_URI e WAREHOUSE_DIR do metastore do Dataproc.

Use estas instruções se o serviço Metastore do Dataproc usar o Private Service Connect ou se você quiser anexar um cluster do Dataproc à versão auxiliar do seu serviço Metastore do Dataproc.

Há duas maneiras de anexar um cluster do Dataproc usando as propriedades ENDPOINT_URI e WAREHOUSE_DIR:

Opção 1: ao criar um cluster do Dataproc

Ao criar um cluster do Dataproc, use a sinalização 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:

Opção 2: atualizar o arquivo hive-site.xml

Também é possível anexar um cluster do Dataproc modificando diretamente o arquivo hive-site.xml do cluster.

  1. Conecte-se ao cluster .*-m usando SSH.
  2. Abra o arquivo /etc/hive/conf/hive-site.xml e 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:

  3. Reinicie o HiveServer2:

    sudo systemctl restart hive-server2.service
    

Clusters autogerenciados

Um cluster autogerenciado pode ser uma instância do Apache Hive, do Apache Spark (em inglês) ou do Presto (links em inglês).

Anexar um cluster autogerenciado

Defina os seguintes valores no arquivo de configuração do cliente:

hive.metastore.uris=ENDPOINT_URI
hive.metastore.warehouse.dir=WAREHOUSE_DIR

Substitua:

A seguir