Tarefa Hadoop MapReduce com o Bigtable
Este exemplo usa o Hadoop para executar uma tarefa MapReduce simples que
conta o número de vezes que uma palavra aparece num ficheiro de texto. A tarefa MapReduce usa o Bigtable para armazenar os resultados da operação de mapeamento. O código deste exemplo encontra-se no repositório do GitHub GoogleCloudPlatform/cloud-bigtable-examples, no diretório java/dataproc-wordcount
.
Configure a autenticação
Para usar os Java exemplos nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as Credenciais predefinidas da aplicação com as suas credenciais de utilizador.
Instale a CLI Google Cloud.
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para mais informações, consulte Set up authentication for a local development environment.
Vista geral do exemplo de código
O exemplo de código fornece uma interface de linha de comandos simples que recebe um ou mais ficheiros de texto e um nome de tabela como entrada, encontra todas as palavras que aparecem no ficheiro e conta quantas vezes cada palavra aparece. A lógica do MapReduce aparece na classe WordCountHBase
.
Primeiro, um mapeador tokeniza o conteúdo do ficheiro de texto e gera pares de chave-valor, em que a chave é uma palavra do ficheiro de texto e o valor é 1
:
Em seguida, um redutor soma os valores de cada chave e escreve os resultados numa tabela do Bigtable que especificou. Cada chave de linha é uma palavra do ficheiro de texto. Cada linha contém uma coluna cf:count
, que contém o número de vezes que a chave da linha aparece no ficheiro de texto.