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 master (predefinito, non ad alta disponibilità)
- 3 master (Hadoop HA)
Confronto tra la modalità predefinita e la modalità Alta disponibilità di Hadoop
Errore di Compute Engine: nel raro caso di un errore imprevisto di Compute Engine, Dataproc le istanze riavvieranno la macchina. L'impostazione predefinita per di Dataproc è progettata per ripristinare e continuare l'elaborazione nuovi lavori in questi casi, ma quelli in corso non riusciranno e dovranno essere e HDFS non sarà accessibile fino a quando il singolo NameNode non sarà stato completamente ripristinato 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 di job: il programma driver/principale di qualsiasi job che esegui rappresenta comunque un il potenziale single point of failure se la correttezza del job dipende programma driver in esecuzione. 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. Per per assicurare la resilienza di singoli job in caso di errori a nodo singolo utilizzando un cloud ad alta disponibilità Cluster Dataproc, il job deve 1) essere eseguito senza un driver sincrono o 2) deve eseguire il programma driver stesso all'interno di un container YARN per gestire i riavvii del programma del conducente. 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 istanze
Il master predefinito è denominato cluster-name-m
; I master ad alta disponibilità sono denominati
cluster-name-m-0
, cluster-name-m-1
e cluster-name-m-2
.
Apache ZooKeeper
In un cluster Dataproc ad alta disponibilità, Componente Zookeeper viene installata 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
ecluster-name-m-1
eseguono:- 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.
Consulta la sezione Alta disponibilità YARN documentazione per ulteriori dettagli sui componenti.
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 ad alta disponibilità, utilizza
clusters.create
API, impostazione masterConfig.numInstances
a 3
.
Console
Per creare un cluster ad alta disponibilità, seleziona Alta disponibilità (3 master, N worker) in nella sezione Tipo di cluster del riquadro Configura cluster nella Dataproc Crea un cluster .