Implantar um serviço do metastore do Dataproc

Esta página mostra como criar um serviço do metastore do Dataproc e se conectar a ele em um cluster do Dataproc. Depois, conecte-se via SSH cluster, iniciar uma instância do Apache Hive e executar algumas consultas básicas.

O Dataproc Metastore oferece um metastore Hive (HMS) totalmente compatível, que é o padrão estabelecido no ecossistema de Big Data de código aberto para gerenciamento de metadados técnicos. Esse serviço ajuda você a gerenciar metadados dos seus data lakes e fornece interoperabilidade entre as várias das ferramentas de processamento de dados que você usa.


Para seguir as instruções passo a passo desta tarefa diretamente no console do Google Cloud, clique em Orientação:

Orientações


Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Dataproc Metastore, Dataproc APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Dataproc Metastore, Dataproc APIs.

    Enable the APIs

Papéis necessários

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

  • Para conceder acesso total a todos os recursos do metastore do Dataproc, incluindo a configuração de permissões do IAM: (roles/metastore.admin) na conta de usuário ou de serviço
  • 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
  • Para criar um cluster do Dataproc: (roles/dataproc.worker) na conta de serviço

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 tê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 seguintes permissões são necessárias para criar um metastore do Dataproc e um cluster do Dataproc:

  • Para criar um serviço do Metastore do Dataproc: metastore.services.create na conta de usuário ou de serviço
  • Para criar um cluster do Dataproc: Dataproc worker (roles/dataproc.worker) na conta de serviço

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 Visão geral do IAM do metastore do Dataproc.

Criar um serviço Metastore do Dataproc

As instruções a seguir mostram como criar um serviço básico do metastore do Dataproc usando as configurações padrão fornecidas.

Console

  1. No console do Google Cloud, acesse a página Metastore do Dataproc.

    Ir para Metastore do Dataproc

  2. No menu de navegação, clique em +Criar.

    A caixa de diálogo Criar serviço do Metastore será aberta.

  3. Selecione Metastore do Dataproc 2.

  4. No campo Nome da conta de serviço, insira example-service.

  5. No campo Local dos dados, selecione us-central1.

  6. Para as outras opções de configuração do serviço, use os padrões fornecidos.

  7. Para criar e iniciar o serviço, clique em Enviar.

O novo serviço de metastore aparece na página Metastore do Dataproc. O O status será Creating até que o serviço esteja pronto para uso. Quando for pronto, o status mudará para Ativo. O provisionamento do serviço pode levar alguns minutos.

A captura de tela a seguir mostra um exemplo da página Create service usando alguns dos padrões fornecidos.

Página "Criar serviço".

CLI da gcloud

Para criar um serviço de metastore usando os padrões fornecidos, execute o seguinte gcloud metastore services create comando:

 gcloud metastore services create example-service \
     --location=us-central1 \
     --instance-size=MEDIUM

Esse comando cria um serviço chamado example-service na configuração região (us-central1) e com o tamanho padrão da instância (MEDIUM).

REST

Siga as instruções da API para criar um serviço usando o APIs Explorer.

Crie um cluster do Dataproc e conecte-se ao metastore do Dataproc

Em seguida, crie um cluster do Dataproc e se conecte ao metastore a partir dele. Depois disso, o cluster usará o serviço metastore como ele é HMS. O cluster criado aqui usa as configurações padrão fornecidas.

Console

  1. No console do Google Cloud, acesse a página Clusters do Dataproc.

    Ir para Clusters do Dataproc

  2. Na barra de navegação, selecione + Criar cluster.

    A caixa de diálogo Criar um cluster é aberta com várias opções de infraestrutura que para você escolher.

  3. Na linha Cluster no Compute Engine, selecione Criar.

    A página Criar um cluster do Dataproc no Compute Engine abre.

  4. No campo Nome do cluster, insira example-cluster.

  5. Nos menus Região e Zona, selecione us-central1.

  6. Para as opções restantes de Configurar cluster, use os padrões fornecidos.

  7. No menu de navegação, clique na guia Personalizar cluster (opcional).

  8. Na seção Metastore do Dataproc, selecione o metastore. serviço criado anteriormente.

    Se você seguiu este tutorial como está, ele é chamado de example-service.

  9. Para as demais opções de configuração de serviço, use os padrões fornecidos.

  10. Para criar o cluster, clique em Criar.

    O novo cluster aparece na lista Clusters. O status do cluster exibirá Provisionamento até que o cluster esteja pronto para uso. Quando for pronto, o status mudará para Ativo. O provisionamento do cluster pode levar alguns minutos.

CLI da gcloud

Para criar um cluster usando as configurações padrão fornecidas, execute o seguinte comando gcloud dataproc clusters create:

 gcloud dataproc clusters create example-cluster \
    --dataproc-metastore=projects/PROJECT_ID/locations/us-central1/services/example-service \
    --region=us-central1

Substitua PROJECT_ID pelo ID do projeto do projeto em que você criou o serviço Metastore do Dataproc.

REST

Siga as instruções da API para criar um cluster usando o APIs Explorer.

Conectar-se ao Apache Hive com um cluster do Dataproc

Estas etapas mostram como executar alguns comandos de exemplo no Apache Hive para criar um banco de dados e uma tabela.

Em seguida, abra uma sessão SSH no cluster do Dataproc e inicie uma do Hive.

  1. No console do Google Cloud, acesse a página Instâncias de VM.
  2. Na lista de instâncias de máquina virtual, clique em SSH ao lado de example-cluster.

Uma janela de navegador é aberta no diretório inicial do nó com uma saída semelhante a esta:

Connected, host fingerprint: ssh-rsa ...
Linux cluster-1-m 3.16.0-0.bpo.4-amd64 ...
...
example-cluster@cluster-1-m:~$

Para iniciar o Hive e criar um banco de dados e uma tabela, execute os seguintes comandos na sessão SSH:

  1. Inicie o Hive.

    hive
    
  2. Crie um banco de dados denominado myDatabase.

    create database myDatabase;
    
  3. Mostre o banco de dados que você criou.

    show databases;
    
  4. Use o banco de dados que você criou.

    use myDatabase;
    
  5. Crie uma tabela chamada myTable.

    create table myTable(id int,name string);
    
  6. Liste as tabelas em myDatabase.

    show tables;
    
  7. Descreva o esquema da tabela que você criou.

    desc MyTable;
    

A execução desses comandos mostra uma saída semelhante a esta:

$hive

hive> show databases;
OK
default
hive> create database myDatabase;
OK
hive> use myDatabase;
OK
hive> create table myTable(id int,name string);
OK
hive> show tables;
OK
myTable
hive> desc myTable;
OK
id                      int
name                    string

Limpar

Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, siga estas etapas.

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. If the project that you plan to delete is attached to an organization, expand the Organization list in the Name column.
  3. In the project list, select the project that you want to delete, and then click Delete.
  4. In the dialog, type the project ID, and then click Shut down to delete the project.

Como alternativa, é possível excluir os recursos usados neste tutorial:

  1. Exclua o serviço Metastore do Dataproc.

    Console

    1. No console do Google Cloud, abra a página Metastore do Dataproc:

      Acesse Dataproc Metastore

    2. Na lista de serviços, selecione example-service.

    3. Na barra de navegação, clique em Excluir.

      A caixa de diálogo Excluir serviço será aberta.

    4. Na caixa de diálogo, clique em Excluir.

      Seu serviço não aparece mais na lista de serviços.

    CLI da gcloud

    Para excluir o serviço, execute o comando gcloud metastore services delete a seguir.

     gcloud metastore services delete example-service \
         --location=us-central1

    REST

    Siga as instruções da API para excluir um serviço usando o APIs Explorer.

    Todas as exclusões foram feitas imediatamente.

  2. Exclua o bucket do Cloud Storage para o serviço Metastore do Dataproc.

  3. Exclua o cluster do Dataproc que usou o serviço Metastore do Dataproc.

A seguir