Creazione di un cluster Hadoop
Puoi utilizzare Managed Service per Apache Spark per creare una o più istanze Compute Engine che possono connettersi a un'istanza Bigtable ed eseguire job Hadoop. Questa pagina spiega come utilizzare Managed Service per Apache Spark per automatizzare le seguenti attività:
- Installazione di Hadoop e del client HBase per Java
- Configurazione di Hadoop e Bigtable
- Impostazione degli ambiti di autorizzazione corretti per Bigtable
Dopo aver creato il cluster Managed Service per Apache Spark, puoi utilizzarlo per eseguire job Hadoop che leggono e scrivono dati da e verso Bigtable.
Questa pagina presuppone che tu abbia già familiarità con Hadoop. Per ulteriori informazioni su Managed Service per Apache Spark, consulta la documentazione di Managed Service per Apache Spark.
Prima di iniziare
Prima di iniziare, devi completare le seguenti attività:
- Crea un'istanza Bigtable. Assicurati di annotare l'ID progetto e l'ID istanza Bigtable.
-
Abilita le API Cloud Bigtable, API Cloud Bigtable Admin, Managed Service per Apache Spark e API Cloud Storage JSON.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (
roles/serviceusage.serviceUsageAdmin), che include l'autorizzazioneserviceusage.services.enable. Scopri come concedere i ruoli. - Verifica che il tuo account utente abbia un ruolo che include l'autorizzazione
storage.objects.get.Apri la pagina IAM nella Google Cloud console.
- Installa Google Cloud CLI. Per i dettagli, consulta le istruzioni di configurazione di gcloud CLI.
-
Installa Apache Maven, che viene utilizzato per eseguire un job Hadoop di esempio.
Su Debian GNU/Linux o Ubuntu, esegui il seguente comando:
sudo apt-get install maven
Su RedHat Enterprise Linux o CentOS, esegui il seguente comando:
sudo yum install maven
Su macOS, installa Homebrew, quindi esegui il seguente comando:
brew install maven
- Clona il repository GitHub
GoogleCloudPlatform/cloud-bigtable-examples,
che contiene un esempio di job Hadoop che utilizza Bigtable:
git clone https://github.com/GoogleCloudPlatform/cloud-bigtable-examples.git
Crea un bucket Cloud Storage
Managed Service per Apache Spark utilizza un bucket Cloud Storage per archiviare i file temporanei. Per evitare conflitti di denominazione dei file, crea un nuovo bucket per Managed Service per Apache Spark.
I nomi dei bucket Cloud Storage devono essere univoci a livello globale in tutti i bucket. Scegli un nome di bucket che probabilmente sarà disponibile, ad esempio un nome che incorpora il nome del tuo Google Cloud progetto.
Dopo aver scelto un nome, utilizza il seguente comando per creare un nuovo bucket, sostituendo i valori tra parentesi quadre con i valori appropriati:
gcloud storage buckets create gs://[BUCKET_NAME] --project=[PROJECT_ID]
Crea il cluster Managed Service per Apache Spark
Esegui il seguente comando per creare un cluster Managed Service per Apache Spark con quattro nodi worker, sostituendo i valori tra parentesi quadre con i valori appropriati:
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
Consulta la gcloud dataproc clusters create documentazione
per ulteriori impostazioni che puoi configurare. Se ricevi un messaggio di errore che
include il testo Insufficient 'CPUS' quota, prova a impostare il flag --num-workers
su un valore inferiore.
Testa il cluster Managed Service per Apache Spark
Dopo aver configurato il cluster Managed Service per Apache Spark, puoi testarlo eseguendo un job Hadoop di esempio che conta il numero di volte in cui una parola viene visualizzata in un file di testo. Il job di esempio utilizza Bigtable per archiviare i risultati dell'operazione. Puoi utilizzare questo job di esempio come riferimento quando configuri i tuoi job Hadoop.
Esegui il job Hadoop di esempio
- Nella directory in cui hai clonato il repository GitHub, passa alla directory
java/dataproc-wordcount. Esegui il seguente comando per creare il progetto, sostituendo i valori tra parentesi quadre con i valori appropriati:
mvn clean package -Dbigtable.projectID=[PROJECT_ID] \ -Dbigtable.instanceID=[BIGTABLE_INSTANCE_ID]Esegui il seguente comando per avviare il job Hadoop, sostituendo i valori tra parentesi quadre con i valori appropriati:
./cluster.sh start [DATAPROC_CLUSTER_NAME]
Al termine del job, viene visualizzato il nome della tabella di output, ovvero la parola WordCount seguita da un trattino e da un numero univoco:
Output table is: WordCount-1234567890
Verifica i risultati del job Hadoop
Facoltativamente, dopo aver eseguito il job Hadoop, puoi utilizzare l'interfaccia a riga di comando
cbt per
verificare che il job sia stato eseguito correttamente:
-
Apri una finestra del terminale in Cloud Shell.
- Installa l'
cbtinterfaccia a riga di comando :gcloud components updategcloud components install cbt - Scansiona la tabella di output per visualizzare i risultati del job Hadoop, sostituendo
[TABLE_NAME]con il nome della tabella di output:cbt -instance [BIGTABLE_INSTANCE_ID] read [TABLE_NAME]
Ora che hai verificato che il cluster è configurato correttamente, puoi utilizzarlo per eseguire i tuoi job Hadoop.
Elimina il cluster Managed Service per Apache Spark
Al termine dell'utilizzo del cluster Managed Service per Apache Spark, esegui il seguente comando per arrestare ed eliminare il cluster, sostituendo [DATAPROC_CLUSTER_NAME] con il nome del cluster Managed Service per Apache Spark:
gcloud dataproc clusters delete [DATAPROC_CLUSTER_NAME]
Passaggi successivi
- Scopri di più su Managed Service per Apache Spark.
- Inizia a utilizzare il client HBase per Java.