Crie um cluster Hadoop

Pode usar o Dataproc para criar uma ou mais instâncias do Compute Engine que podem ligar-se a uma instância do Bigtable e executar tarefas do Hadoop. Esta página explica como usar o Dataproc para automatizar as seguintes tarefas:

  • Instalar o Hadoop e o cliente HBase para Java
  • Configurar o Hadoop e o Bigtable
  • Definir os âmbitos de autorização corretos para o Bigtable

Depois de criar o cluster do Dataproc, pode usá-lo para executar tarefas do Hadoop que leiam e escrevam dados para e a partir do Bigtable.

Esta página pressupõe que já conhece o Hadoop. Para mais informações acerca do Dataproc, consulte a documentação do Dataproc.

Antes de começar

Antes de começar, tem de concluir as seguintes tarefas:

  • Crie uma instância do Bigtable. Certifique-se de que anota o ID do projeto e o ID da instância do Bigtable.
  • Enable the Cloud Bigtable API, Cloud Bigtable Admin API, Dataproc, and Cloud Storage JSON 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

  • Verifique se a sua conta de utilizador tem uma função que inclua a autorização storage.objects.get.

    Abra a página IAM na Google Cloud consola.

    Abra a página do IAM

  • Instale a CLI do Google Cloud. Consulte as instruções de configuração da CLI gcloud para ver detalhes.
  • Instale o Apache Maven, que é usado para executar uma tarefa de exemplo do Hadoop.

    No Debian GNU/Linux ou Ubuntu, execute o seguinte comando:

    sudo apt-get install maven

    No RedHat Enterprise Linux ou CentOS, execute o seguinte comando:

    sudo yum install maven

    No macOS, instale o Homebrew e, de seguida, execute o seguinte comando:

    brew install maven
  • Clone o repositório do GitHub GoogleCloudPlatform/cloud-bigtable-examples, que contém um exemplo de uma tarefa do Hadoop que usa o Bigtable:
    git clone https://github.com/GoogleCloudPlatform/cloud-bigtable-examples.git

Crie um contentor do Cloud Storage

O Dataproc usa um contentor do Cloud Storage para armazenar ficheiros temporários. Para evitar conflitos de nomes de ficheiros, crie um novo contentor para o Dataproc.

Os nomes dos contentores do Cloud Storage têm de ser exclusivos a nível global em todos os contentores. Escolha um nome de contentor que provavelmente esteja disponível, como um nome que incorpore o nome do seu projeto. Google Cloud

Depois de escolher um nome, use o seguinte comando para criar um novo grupo, substituindo os valores entre parênteses pelos valores adequados:

gcloud storage buckets create gs://[BUCKET_NAME] --project=[PROJECT_ID]

Crie o cluster do Dataproc

Execute o seguinte comando para criar um cluster do Dataproc com quatro nós de trabalho, substituindo os valores entre parênteses pelos valores adequados:

gcloud dataproc clusters create [DATAPROC_CLUSTER_NAME] --bucket [BUCKET_NAME] \
    --region [region] --num-workers 4 --master-machine-type n1-standard-4 \
    --worker-machine-type n1-standard-4

Consulte a gcloud dataproc clusters create documentação para ver definições adicionais que pode configurar. Se receber uma mensagem de erro que inclua o texto Insufficient 'CPUS' quota, experimente definir a flag --num-workers para um valor inferior.

Teste o cluster do Dataproc

Depois de configurar o cluster do Dataproc, pode testá-lo executando uma tarefa de exemplo do Hadoop que conta o número de vezes que uma palavra aparece num ficheiro de texto. A tarefa de exemplo usa o Bigtable para armazenar os resultados da operação. Pode usar esta tarefa de exemplo como referência quando configurar as suas próprias tarefas do Hadoop.

Execute a tarefa Hadoop de exemplo

  1. No diretório onde clonou o repositório do GitHub, mude para o diretório java/dataproc-wordcount.
  2. Execute o seguinte comando para criar o projeto, substituindo os valores entre parênteses pelos valores adequados:

    mvn clean package -Dbigtable.projectID=[PROJECT_ID] \
        -Dbigtable.instanceID=[BIGTABLE_INSTANCE_ID]
    
  3. Execute o seguinte comando para iniciar a tarefa do Hadoop, substituindo os valores entre parênteses pelos valores adequados:

    ./cluster.sh start [DATAPROC_CLUSTER_NAME]
    

Quando a tarefa estiver concluída, é apresentado o nome da tabela de saída, que é a palavra WordCount seguida de um hífen e um número único:

Output table is: WordCount-1234567890

Valide os resultados da tarefa do Hadoop

Opcionalmente, depois de executar a tarefa do Hadoop, pode usar a CLI cbt para verificar se a tarefa foi executada com êxito:

  1. Abra uma janela de terminal no Cloud Shell.

    Abrir no Cloud Shell

  2. Instale a CLI cbt :
        gcloud components update
        gcloud components install cbt
  3. Analise a tabela de resultados para ver os resultados da tarefa do Hadoop, substituindo [TABLE_NAME] pelo nome da tabela de resultados:
        cbt -instance [BIGTABLE_INSTANCE_ID] read [TABLE_NAME]
      

Agora que verificou que o cluster está configurado corretamente, pode usá-lo para executar as suas próprias tarefas do Hadoop.

Elimine o cluster do Dataproc

Quando terminar de usar o cluster do Dataproc, execute o seguinte comando para encerrar e eliminar o cluster, substituindo [DATAPROC_CLUSTER_NAME] pelo nome do seu cluster do Dataproc:

gcloud dataproc clusters delete [DATAPROC_CLUSTER_NAME]

O que se segue?