Implemente um serviço de Dataproc Metastore

Esta página mostra-lhe como criar um serviço do Dataproc Metastore e estabelecer ligação ao mesmo a partir de um cluster do Dataproc. Em seguida, usa o SSH para aceder ao cluster, inicia uma instância do Apache Hive e executa algumas consultas básicas.

O Dataproc Metastore oferece-lhe um Hive Metastore (HMS) totalmente compatível, que é a norma estabelecida no ecossistema de Big Data de código aberto para gerir metadados técnicos. Este serviço ajuda a gerir os metadados dos seus data lakes e oferece interoperabilidade entre as várias ferramentas de processamento de dados que está a usar.


Para seguir orientações passo a passo para esta tarefa diretamente na Google Cloud consola, clique em Orientar-me:

Visita guiada


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.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Dataproc Metastore, Dataproc APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Dataproc Metastore, Dataproc APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. Funções necessárias

    Para receber as autorizações de que precisa para criar um Dataproc Metastore e um cluster do Dataproc, peça ao seu administrador para lhe conceder as seguintes funções do IAM:

    • Para conceder acesso total a todos os recursos do Dataproc Metastore, incluindo a definição de autorizações da IAM: (roles/metastore.admin) na conta de utilizador ou na conta de serviço
    • Para conceder controlo total dos recursos do Dataproc Metastore: Editor de Metastore do Dataproc (roles/metastore.editor) na conta de utilizador ou na conta de serviço
    • Para criar um cluster do Dataproc: (roles/dataproc.worker) na conta de serviço

    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.

    Estas funções predefinidas contêm as autorizações necessárias para criar um Dataproc Metastore e um cluster do Dataproc. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

    Autorizações necessárias

    São necessárias as seguintes autorizações para criar um Dataproc Metastore e um cluster do Dataproc:

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

    Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

    Para mais informações sobre as funções e as autorizações específicas do Dataproc Metastore, consulte a vista geral do IAM do Dataproc Metastore.

    Crie um serviço Dataproc Metastore

    As instruções seguintes mostram como criar um serviço Dataproc Metastore básico com as predefinições fornecidas.

    Consola

    1. Na Google Cloud consola, aceda à página Dataproc Metastore.

      Aceda ao Dataproc Metastore

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

      É apresentada a caixa de diálogo Criar serviço Metastore.

    3. Selecione Dataproc Metastore 2.

    4. No campo Nome do serviço, introduza example-service.

    5. No campo Localização de dados, selecione us-central1.

    6. Para as restantes opções de configuração do serviço, use as predefinições fornecidas.

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

    O novo serviço de metastore é apresentado na página Dataproc Metastore. O estado apresenta A criar até o serviço estar pronto para utilização. Quando estiver pronto, o estado muda para Ativo. O aprovisionamento do serviço pode demorar alguns minutos.

    A captura de ecrã seguinte mostra um exemplo da página Criar serviço com algumas das predefinições fornecidas.

    A página Criar serviço.

    CLI gcloud

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

    .

    REST

    Siga as instruções da API para criar um serviço através do APIs Explorer.

    Crie um cluster do Dataproc e ligue-o ao Dataproc Metastore

    Em seguida, cria um cluster do Dataproc e estabelece ligação ao metastore a partir do cluster. Depois disso, o cluster usa o serviço de metastore como HMS. O cluster que criar aqui usa as predefinições fornecidas.

    Consola

    1. Na Google Cloud consola, aceda à página Clusters do Dataproc.

      Aceda a Clusters do Dataproc

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

      A caixa de diálogo Criar um cluster é aberta e apresenta várias opções de infraestrutura que pode escolher.

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

      A página Crie um cluster do Dataproc no Compute Engine é aberta.

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

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

    6. Para as restantes opções de Configurar cluster, use as predefinições fornecidas.

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

    8. Na secção Dataproc Metastore, selecione o serviço metastore que criou anteriormente.

      Se seguiu este tutorial tal como está, chama-se example-service.

    9. Para as restantes opções de configuração do serviço, use as predefinições fornecidas.

    10. Para criar o cluster, clique em Criar.

      O novo cluster é apresentado na lista Clusters. O estado do cluster apresenta Aprovisionamento até o cluster estar pronto a ser usado. Quando estiver pronto, o estado muda para Ativo. O aprovisionamento do cluster pode demorar alguns minutos.

    CLI gcloud

    Para criar um cluster com as predefinições 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 no qual criou o serviço Dataproc Metastore.

    REST

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

    Estabeleça ligação ao Apache Hive com um cluster do Dataproc

    Os passos seguintes mostram como executar alguns comandos de exemplo no Apache Hive para criar uma base de dados e uma tabela.

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

    1. Na Google Cloud consola, aceda à página Instâncias de VM.
    2. Na lista de instâncias de máquinas virtuais, clique em SSH junto a example-cluster.

    É aberta uma janela do navegador no diretório base do nó com um resultado semelhante ao seguinte:

    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 uma base de dados e uma tabela, execute os seguintes comandos na sessão SSH:

    1. Inicie o Hive.

      hive
      
    2. Cria uma base de dados denominada myDatabase.

      create database myDatabase;
      
    3. Mostrar a base de dados que criou.

      show databases;
      
    4. Use a base de dados que criou.

      use myDatabase;
      
    5. Cria uma tabela denominada myTable.

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

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

      desc MyTable;
      

    A execução destes comandos mostra um resultado semelhante ao seguinte:

    $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 incorrer em cobranças na sua Google Cloud conta pelos recursos usados nesta página, siga estes passos.

    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.

    Em alternativa, pode eliminar os recursos usados neste tutorial:

    1. Elimine o serviço Dataproc Metastore.

      Consola

      1. Na Google Cloud consola, abra a página Dataproc Metastore:

        Aceda ao Dataproc Metastore

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

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

        É apresentada a caixa de diálogo Eliminar serviço.

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

        O seu serviço já não aparece na lista de serviços.

      CLI gcloud

      Para eliminar o seu serviço, execute o seguinte comando gcloud metastore services delete.

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

      REST

      Siga as instruções da API para eliminar um serviço através do APIs Explorer.

      Todas as eliminações são bem-sucedidas imediatamente.

    2. Elimine o contentor do Cloud Storage para o serviço Dataproc Metastore.

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

    O que se segue?