Modalità alta disponibilità

Quando crei un cluster Managed Service for Apache Spark, puoi impostarlo in modalità ad alta affidabilità (HA) 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 for Apache Spark supporta due configurazioni master:

  • 1 master (predefinito, non HA)
  • 3 master (Hadoop HA)

Confronto tra la modalità predefinita e la modalità ad alta affidabilità di Hadoop

  • Errore di Compute Engine: nel raro caso di un errore imprevisto di Compute Engine, le istanze di Managed Service for Apache Spark subiranno un riavvio della macchina. La configurazione single-master predefinita per Managed Service for Apache Spark è progettata per recuperare e continuare a elaborare il nuovo lavoro in questi casi, ma i job in corso non andranno necessariamente a buon fine e dovranno essere ripetuti, mentre HDFS non sarà accessibile finché il NameNode singolo non si sarà completamente ripristinato al riavvio. In modalità HA, l'alta affidabilità HDFS e l'alta affidabilità YARN sono configurate per consentire operazioni YARN e HDFS senza interruzioni nonostante eventuali errori/riavvii di singoli nodi.

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

  • Errore di zona: come nel caso di tutti i cluster Managed Service for Apache Spark, tutti i nodi di un cluster ad alta affidabilità si trovano 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 ad alta affidabilità sono denominati cluster-name-m-0, cluster-name-m-1, cluster-name-m-2.

Apache ZooKeeper

In un cluster Managed Service for Apache Spark ad alta affidabilità, 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 for Apache Spark standard:

  • Esecuzioni di cluster-name-m:
    • NameNode
    • NameNode secondario

In un cluster Managed Service for Apache Spark ad alta affidabilità:

  • 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 relativa all'alta affidabilità di HDFS.

YARN

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

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

Per ulteriori dettagli sui componenti, consulta la documentazione relativa all'alta affidabilità di YARN.

Crea un cluster ad alta affidabilità

Console

  • Apri la pagina Crea cluster di Managed Service for Apache Spark.
  • Nella sezione Definisci la forma del cluster, seleziona Alta affidabilità.
  • Per impostazione predefinita, le impostazioni del nodo driver sono le stesse di quelle del worker primario. In Configurazione aggiuntiva, puoi modificare Nodo driver per deselezionare la casella di controllo Imposta il nodo driver come il worker primario, quindi specificare le impostazioni del nodo driver.

Comando g-cloud

Per creare un cluster ad alta affidabilità con gcloud dataproc clusters create, esegui questo comando:
gcloud dataproc clusters create cluster-name \
    --region=region \
    --num-masters=3 \
    ... other args

API REST

Per creare un cluster ad alta affidabilità, utilizza l'API clusters.create, impostando masterConfig.numInstances su 3.