La libreria Java open source del connettore Cloud Storage consente di eseguire job Apache Hadoop o Apache Spark direttamente sui dati in Cloud Storage.
Vantaggi del connettore Cloud Storage
- Accesso diretto ai dati: archivia i dati in Cloud Storage e accedi direttamente. Non è necessario trasferirlo prima in HDFS.
- Compatibilità HDFS: puoi accedere ai tuoi dati in
Cloud Storage utilizzando il prefisso
gs://
anzichéhdfs://
. - Interoperabilità: l'archiviazione dei dati in Cloud Storage consente interoperabilità perfetta tra i servizi Spark, Hadoop e Google.
- Accessibilità dei dati: quando arresti un cluster Hadoop, a differenza di HDFS, continui ad avere accesso ai tuoi dati in Cloud Storage.
- Elevata disponibilità dei dati: i dati archiviati in Cloud Storage sono molto disponibili e replicati a livello globale senza perdita di prestazioni.
- Nessun overhead per la gestione dello spazio di archiviazione: a differenza di HDFS, Cloud Storage non richiede alcuna manutenzione di routine, come il controllo del file system o eseguire l'upgrade o il rollback a una versione precedente del file system.
- Avvio rapido: in HDFS, un job MapReduce non può essere avviato fino a quando
NameNode
è fuori dalla modalità provvisoria, una procedura che può richiedere da alcune da secondi a molti minuti, a seconda delle dimensioni e dello stato dei dati. Con Cloud Storage, puoi avviare il job non appena vengono avviati i nodi delle attività il che si traduce in un significativo risparmio sui costi nel tempo.
Configurazione del connettore sui cluster Dataproc
Il connettore Cloud Storage è installato per impostazione predefinita su tutti i nodi del cluster Dataproc nella directory /usr/local/share/google/dataproc/lib/
. Le seguenti sezioni descrivono i passaggi che puoi svolgere per completare la configurazione dei connettori nei cluster Dataproc.
Account di servizio VM
Quando esegui il connettore sui nodi del cluster Dataproc e su altre VM Compute Engine, la proprietà google.cloud.auth.service.account.enable
è impostata su false
per impostazione predefinita, il che significa che non devi configurare le credenziali dell'account di servizio VM per il connettore. Le credenziali dell'account di servizio VM vengono fornite dal server metadati VM.
Dataproc Account di servizio VM Devi disporre dell'autorizzazione per accedere al bucket Cloud Storage.
Versioni del connettore selezionate dall'utente
Le versioni predefinite del connettore Cloud Storage utilizzate nelle immagini più recenti installati sui cluster Dataproc sono elencati pagine delle versioni delle immagini. Se l'applicazione dipende da una versione del connettore non predefinita di cui è stato eseguito il deployment sul tuo puoi eseguire una delle seguenti azioni per utilizzare il cluster selezionato Versione del connettore:
- Crea un cluster con
--metadata=GCS_CONNECTOR_VERSION=x.y.z
che aggiorna il connettore utilizzato dalle applicazioni in esecuzione sul cluster alla versione specificata del connettore. - Includi e trasferire le classi e le dipendenze del connettore per la versione jar.cRelocation della tua applicazione è necessario per evitare conflitto tra la versione del connettore di cui è stato eseguito il deployment e quella predefinita del connettore installato sul cluster Dataproc. Consulta anche l'esempio di spostamento delle dipendenze Maven.
Configurazione dei connettori su cluster non Dataproc
Per configurare il connettore Cloud Storage su un cluster non Dataproc, ad esempio un cluster Apache Hadoop o Spark, che utilizzi per spostare i dati HDFS on-premise in Cloud Storage, puoi seguire i passaggi che seguono.
Scarica il connettore.
- Per scaricare il connettore Cloud Storage:
- Per utilizzare una versione
latest
che si trova nel bucket Cloud Storage (l'utilizzo di una versionelatest
non è consigliato per le applicazioni di produzione): - Per utilizzare una versione specifica
del tuo bucket Cloud Storage, sostituisci le versioni del connettore Hadoop e Cloud Storage nel
gcs-connector-HADOOP_VERSION-CONNECTOR_VERSION.jar
pattern di nome, ad esempiogs://hadoop-lib/gcs/gcs-connector-hadoop2-2.1.1.jar
. - Per utilizzare una versione specifica
del
repository Apache Maven,
scarica un file JAR ombreggiato con il suffisso
-shaded
nel nome.
- Per utilizzare una versione
- Per scaricare il connettore Cloud Storage:
Installa il connettore.
Segui le istruzioni di GitHub per installare, configurare e testare il connettore Cloud Storage.
Utilizzo del connettore
Puoi utilizzare il connettore per accedere ai dati di Cloud Storage nelle modi:
- In un'applicazione Spark, PySpark o Hadoop con il prefisso
gs://
- In una shell Hadoop con
hadoop fs -ls gs://bucket/dir/file
- Nel browser Cloud Storage Nella console Google Cloud
- Utilizzando i comandi di Google Cloud SDK, ad esempio:
*
gcloud storage cp
*gcloud storage rsync
Utilizzo di Java
Il connettore Cloud Storage richiede Java 8.
Di seguito è riportata una sezione di gestione delle dipendenze POM di Maven di esempio per il connettore Cloud Storage. Per ulteriori informazioni, consulta Gestione delle dipendenze.
<dependency> <groupId>com.google.cloud.bigdataoss</groupId> <artifactId>gcs-connector</artifactId> <version>hadoopX-X.X.XCONNECTOR VERSION</version> <scope>provided</scope> </dependency>
Per una versione ombreggiata:
<dependency> <groupId>com.google.cloud.bigdataoss</groupId> <artifactId>gcs-connector</artifactId> <version>hadoopX-X.X.XCONNECTOR VERSION</version> <scope>provided</scope> <classifier>shaded</classifier> </dependency>
Supporto del connettore
Il connettore Cloud Storage è supportato da Google Cloud per l'utilizzo con i prodotti e i casi d'uso di Google Cloud. Se utilizzato con Dataproc, è supportato allo stesso livello di Dataproc. Per ulteriori informazioni, consulta Ricevere assistenza.
Connettiti a Cloud Storage utilizzando gRPC
Per impostazione predefinita, il connettore Cloud Storage su Dataproc utilizza l'API JSON Cloud Storage. Questa sezione mostra come attivare il connettore Cloud Storage per l'utilizzo di gRPC.
Considerazioni sull'utilizzo
L'utilizzo del connettore Cloud Storage con gRPC include le seguenti considerazioni:
- Posizione del bucket a livello di regione: gRPC può migliorare le latenze di lettura solo quando le VM Compute Engine e i bucket Cloud Storage si trovano nella stessa regione Compute Engine.
- Job ad alta intensità di lettura: gRPC può offrire latenze di lettura migliorate per letture di lunga durata e può essere utile per i carichi di lavoro ad alta intensità di lettura. Non è consigliato per le applicazioni che creano un canale gRPC, eseguono un breve calcolo e poi chiudono il canale.
- Richieste non autenticate: gRPC non supporta le richieste non autenticate.
Requisiti
I seguenti requisiti si applicano quando utilizzi gRPC con Connettore Cloud Storage:
La rete VPC del cluster Dataproc deve Supportano la connettività diretta. Ciò significa che le route e le le regole firewall devono consentire il traffico in uscita per raggiungere
34.126.0.0/18
e2001:4860:8040::/42
.- Se il cluster Dataproc utilizza il networking IPv6, devi impostare una subnet IPv6 per le istanze VM. Per ulteriori informazioni, consulta Configurazione dell'IPv6 per istanze e modelli di istanza.
Quando crei un cluster Dataproc, devi utilizzare la versione del connettore Cloud Storage
2.2.23
o successiva con la versione dell'immagine2.1.56+
o la versione del connettore Cloud Storage v3.0.0 o successiva con la versione dell'immagine 2.2.0 o successiva. La versione del connettore Cloud Storage installata su ogni versione dell'immagine Dataproc è elencata nelle pagine delle versioni delle immagini Dataproc.- Se crei e utilizzi un
Dataproc su cluster virtuale GKE
per le tue richieste gRPC Cloud Storage, versione GKE
Si consiglia di
1.28.5-gke.1199000
congke-metadata-server 0.4.285
. Questa combinazione supporta la connettività diretta.
- Se crei e utilizzi un
Dataproc su cluster virtuale GKE
per le tue richieste gRPC Cloud Storage, versione GKE
Si consiglia di
Tu o l'amministratore dell'organizzazione dovete concedere i ruoli Identity and Access Management che includono le autorizzazioni necessarie per configurare ed effettuare richieste gRPC Connettore Cloud Storage. Questi ruoli possono includere:
- Ruolo utente: Editor Dataproc ruolo concesso agli utenti per consentire loro di creare cluster e inviare job
- Ruolo dell'account di servizio: ruolo Utente oggetto Storage concesso all'account di servizio VM Dataproc per consentire alle applicazioni in esecuzione sulle VM del cluster di visualizzare, leggere, creare e scrivere oggetti Cloud Storage.
Attivare gRPC sul connettore Cloud Storage
Puoi abilitare gRPC sul connettore Cloud Storage nella di cluster o job. Una volta abilitato sul cluster, Cloud Storage le richieste di lettura del connettore utilizzano gRPC. Se abilitata per un job anziché a livello di cluster, le richieste di lettura del connettore Cloud Storage utilizzano gRPC per Google Cloud.
Attivare un cluster
Per abilitare gRPC sul connettore Cloud Storage a livello di cluster, imposta la proprietà core:fs.gs.client.type=STORAGE_CLIENT
quando crei un cluster Dataproc.
Una volta abilitato gRPC a livello di cluster, il connettore Cloud Storage
Le richieste di lettura effettuate dai job in esecuzione sul cluster utilizzano gRPC.
Esempio di interfaccia a riga di comando gcloud:
gcloud dataproc clusters create CLUSTER_NAME \ --project=PROJECT_ID \ --region=REGION \ --properties=core:fs.gs.client.type=STORAGE_CLIENT
Sostituisci quanto segue:
- CLUSTER_NAME: specifica un nome per il cluster.
- PROJECT_NAME: l'ID del progetto in cui si trova il cluster. Gli ID progetto sono elencati nella sezione Informazioni sul progetto la dashboard della console Google Cloud.
- REGION: specifica una regione Compute Engine in cui verrà posizionato il cluster.
Abilita un job
Abilitare gRPC sul connettore Cloud Storage per uno specifico
offerta di lavoro, includi --properties=spark.hadoop.fs.gs.client.type=STORAGE_CLIENT
quando invii un job.
Esempio: eseguire un job su un cluster esistente che utilizza gRPC per la lettura di archiviazione ideale in Cloud Storage.
Crea uno script PySpark
/tmp/line-count.py
locale che utilizza gRPC per leggere un file di testo di Cloud Storage e restituisce il numero di righe nel file.cat <<EOF >"/tmp/line-count.py" #!/usr/bin/python import sys from pyspark.sql import SparkSession path = sys.argv[1] spark = SparkSession.builder.getOrCreate() rdd = spark.read.text(path) lines_counter = rdd.count() print("There are {} lines in file: {}".format(lines_counter,path)) EOF
Crea un file di testo
/tmp/line-count-sample.txt
locale.cat <<EOF >"/tmp/line-count-sample.txt" Line 1 Line 2 line 3 EOF
Carica gli elementi
/tmp/line-count.py
e/tmp/line-count-sample.txt
locali nel tuo bucket in Cloud Storage.gcloud storage cp /tmp/line-count* gs://BUCKET
Esegui il job
line-count.py
sul cluster. Imposta Da--properties=spark.hadoop.fs.gs.client.type=STORAGE_CLIENT
a abilitare gRPC per le richieste di lettura del connettore Cloud Storage.gcloud dataproc jobs submit pyspark gs://BUCKET/line-count.py \ --cluster=CLUSTER_NAME \ --project=PROJECT_ID \ --region=REGION \ --properties=spark.hadoop.fs.gs.client.type=STORAGE_CLIENT \ -- gs://BUCKET/line-count-sample.txt
Sostituisci quanto segue:
- CLUSTER_NAME: il nome di un cluster esistente.
- PROJECT_NAME: l'ID del tuo progetto. Gli ID progetto sono elencati nella sezione Informazioni sul progetto della dashboard della console Google Cloud.
- REGION: la regione di Compute Engine in cui si trova il cluster individuarlo.
- BUCKET: il tuo bucket Cloud Storage.
Generare metriche lato client gRPC
Puoi configurare il connettore Cloud Storage per generare Metriche relative a gRPC in Cloud Monitoring. Le metriche relative a gRPC possono aiutarti di effettuare le seguenti operazioni:
- Monitora e ottimizza le prestazioni delle richieste gRPC a Cloud Storage
- Risolvere i problemi e eseguire il debug
- Ottieni informazioni sull'utilizzo e sul comportamento delle applicazioni
Per informazioni su come configurare il connettore Cloud Storage per generare metriche relative a gRPC, consulta Utilizzare le metriche lato client gRPC.
Risorse
- Vedi Connettersi a Cloud Storage utilizzando gRPC per utilizzare il connettore Cloud Storage con le librerie client, Controlli di servizio VPC e altri scenari.
- Scopri di più su Cloud Storage.
- Consulta Utilizzare il connettore Cloud Storage con Apache Spark.
- Conoscere il file system Apache Hadoop .
- Visualizza la documentazione di riferimento Javadoc.