Job MapReduce di Hadoop con Bigtable
Questo esempio utilizza Hadoop per eseguire un semplice job MapReduce che
conta il numero di volte in cui una parola compare in un file di testo. Il job MapReduce
utilizza Bigtable per archiviare i risultati dell'operazione di mapping. Il codice per
questo esempio si trova nel repository GitHub
GoogleCloudPlatform/cloud-bigtable-examples, nella directory
java/dataproc-wordcount
.
Configura l'autenticazione
Per utilizzare gli esempi di Java questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
Installa Google Cloud CLI.
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.
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.
Per ulteriori informazioni, vedi Set up authentication for a local development environment.
Panoramica del esempio di codice
L'esempio di codice fornisce una semplice interfaccia a riga di comando che accetta uno o più file di testo e un nome di tabella come input, trova tutte le parole che appaiono nel file e conta quante volte compare ogni parola. La logica MapReduce viene visualizzata
nella classe WordCountHBase
.
Innanzitutto, un mapper tokenizza i contenuti del file di testo e genera coppie chiave-valore, dove la chiave è una parola del file di testo e il valore è 1
:
Un reducer somma quindi i valori per ogni chiave e scrive i risultati in una tabella Bigtable specificata. Ogni chiave di riga è una parola del
file di testo. Ogni riga contiene una colonna cf:count
, che contiene il numero di
volte in cui la chiave di riga viene visualizzata nel file di testo.