Modalità alta disponibilità

Quando crei un cluster Dataproc, puoi impostarlo in modalità Hadoop High Availability (HA) specificando il numero di istanze master nel cluster. Il numero di master può essere specificato solo al momento della creazione del cluster.

Attualmente, Dataproc supporta due configurazioni principali:

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

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

  • Errore Compute Engine: nel raro caso di un errore imprevisto di Compute Engine, le istanze Dataproc subiranno un riavvio della macchina. La configurazione predefinita con un solo master per Dataproc è progettata per recuperare e continuare a elaborare nuovi lavori in questi casi, ma i job in esecuzione non andranno a buon fine e dovranno essere ripetuti e HDFS non sarà accessibile finché il singolo NameNode non si sarà completamente recuperato al riavvio. In modalità HA, alta disponibilità HDFS e alta disponibilità YARN sono configurati per consentire operazioni YARN e HDFS ininterrotte anche in caso di errori/riavvio a livello di singolo nodo.

  • Terminazione del driver del job: il driver/programma principale di qualsiasi job eseguito 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 Dataproc Jobs non sono considerati "ad alta disponibilità" e verranno comunque interrotti in caso di guasto del nodo principale che esegue i programmi del driver dei job corrispondenti. Affinché i singoli job siano resilienti ai guasti di singoli nodi utilizzando un cluster Cloud Dataproc ad alta disponibilità, il job deve 1) essere eseguito senza un programma di driver sincrono o 2) eseguire il programma di driver stesso all'interno di un contenitore YARN e essere scritto per gestire i riavvii del programma di driver. Consulta Avvio di Spark su YARN per un esempio di come i programmi di driver riavviabili possono essere eseguiti all'interno dei container YARN per la tolleranza ai guasti.

  • Errore zonale: come per tutti i cluster Dataproc, tutti i nodi di un cluster ad alta disponibilità si trovano nella stessa zona. Se si verifica un errore che colpisce tutti i nodi di una zona, l'errore non verrà mitigato.

Nomi istanza

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 Dataproc ad alta disponibilità, il componente Zookeeper viene installato automaticamente sui nodi master del cluster. Tutti i master fanno parte di un cluster ZooKeeper, che consente il failover automatico per altri servizi Hadoop.

HDFS

In un cluster Dataproc standard:

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

In un cluster Dataproc ad alta disponibilità:

  • cluster-name-m-0 e cluster-name-m-1 vengono eseguiti:
    • NameNode
    • ZKFailoverController
  • Tutti i master eseguono JournalNode
  • Non è presente un NameNode secondario

Per ulteriori dettagli sui componenti, consulta la documentazione di HDFS High Availability.

YARN

In un cluster Dataproc standard, cluster-name-m esegue ResourceManager.

In un cluster Dataproc ad alta disponibilità, tutti i master eseguono ResourceManager.

Per ulteriori dettagli sui componenti, consulta la documentazione di YARN High Availability.

Creazione di 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'API clusters.create, impostando masterConfig.numInstances su 3.

Console

Per creare un cluster ad alta disponibilità, seleziona Alta disponibilità (3 master, N worker) nella sezione Tipo di cluster del riquadro Configura cluster nella pagina Crea un cluster di Dataproc.