Modalità alta disponibilità

Quando crei un cluster Managed Service per Apache Spark, puoi impostare la modalità alta disponibilità (HA) di Hadoop specificando il numero di istanze master nel cluster. Il numero di master può essere specificato solo al momento della creazione del cluster.

Al momento, Managed Service per Apache Spark supporta due configurazioni master:

  • 1 master (impostazione predefinita, non HA)
  • 3 master (Hadoop HA)

Confronto tra la modalità predefinita e la modalità alta disponibilità di Hadoop

  • Guasto di Compute Engine: nel raro caso di un guasto imprevisto di Compute Engine, le istanze di Managed Service per Apache Spark subiranno un riavvio della macchina. La configurazione predefinita a master singolo per Managed Service per Apache Spark è progettata per recuperare e continuare a elaborare nuovi lavori in questi casi, ma i job in corso non andranno a buon fine e dovranno essere riprovati e HDFS non sarà accessibile finché il singolo NameNode non verrà recuperato completamente al riavvio. In modalità HA, l'alta disponibilità di HDFS e l'alta disponibilità di YARN sono configurate per consentire operazioni YARN e HDFS ininterrotte anche in caso di errore/riavvio a livello di singolo nodo.

  • Terminazione del driver del job: il driver/programma principale di tutti i job che esegui rappresenta comunque un potenziale punto di errore singolo se la correttezza del job dipende dall'esecuzione corretta del programma del driver. I job inviati tramite l'API Jobs di Managed Service per Apache Spark non sono considerati "ad alta affidabilità" e verranno comunque terminati in caso di errore del nodo master che esegue i programmi del driver del job corrispondenti. Affinché i singoli job siano resilienti agli errori di un singolo nodo utilizzando un cluster Cloud Dataproc HA, il job deve 1) essere eseguito senza un programma del driver sincrono oppure 2) deve eseguire il programma del driver stesso all'interno di un container YARN ed essere scritto per gestire i riavvii del programma del driver. Per un esempio di come i programmi del driver riavviabili possono essere eseguiti all'interno dei container YARN per la tolleranza agli errori, consulta Avvio di Spark su YARN.

  • Errore zonale: come nel caso di tutti i cluster Managed Service per Apache Spark, tutti i nodi di un cluster ad alta disponibilità risiedono nella stessa zona. Se si verifica un errore che interessa tutti i nodi di una zona, l'errore non verrà mitigato.

Nomi delle istanze

Il master predefinito è denominato cluster-name-m; i master HA sono denominati cluster-name-m-0, cluster-name-m-1, cluster-name-m-2.

Apache ZooKeeper

In un cluster Managed Service per Apache Spark HA, il componente Zookeeper viene installato automaticamente sui nodi master del cluster. Tutti i master partecipano a un cluster ZooKeeper, che consente il failover automatico per altri servizi Hadoop.

HDFS

In un cluster Managed Service per Apache Spark standard:

  • cluster-name-m esegue:
    • NameNode
    • NameNode secondario

In un cluster Managed Service per Apache Spark ad alta disponibilità:

  • cluster-name-m-0 e cluster-name-m-1 eseguono:
    • NameNode
    • ZKFailoverController
  • Tutti i master eseguono JournalNode
  • Non esiste un NameNode secondario

Per ulteriori dettagli sui componenti, consulta la documentazione sull'alta disponibilità di HDFS.

YARN

In un cluster Managed Service per Apache Spark standard, cluster-name-m esegue ResourceManager.

In un cluster Managed Service per Apache Spark ad alta disponibilità, tutti i master eseguono ResourceManager.

Per ulteriori dettagli sui componenti, consulta la documentazione sull'alta disponibilità di YARN.

Creare un cluster ad alta disponibilità

Comando g-cloud

Per creare un cluster HA con gcloud dataproc clusters create, esegui il seguente comando:
gcloud dataproc clusters create cluster-name \
    --region=region \
    --num-masters=3 \
    ... other args

API REST

Per creare un cluster HA, utilizza l' clusters.create, impostando masterConfig.numInstances su 3.

Console

Per creare un cluster HA, seleziona Alta disponibilità (3 master, N worker) in Tipo di cluster del riquadro Configura cluster nella pagina Crea un cluster di Managed Service per Apache Spark.