Quando crei un cluster Managed Service for Apache Spark, puoi impostare il cluster in modalità Hadoop ad alta affidabilità (HA) specificando il numero di istanze master nel cluster. Il numero di nodi 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à di alta disponibilità di Hadoop
Guasto di Compute Engine: nel raro caso di un guasto imprevisto di Compute Engine, le istanze Managed Service for Apache Spark verranno riavviate. La configurazione single-master predefinita per Managed Service for Apache Spark è progettata per recuperare e continuare l'elaborazione di nuovi lavori in questi casi, ma i job in corso non riusciranno necessariamente e dovranno essere riprovati e HDFS non sarà accessibile finché il singolo NameNode non verrà ripristinato completamente al riavvio. In modalità HA, alta disponibilità HDFS e alta disponibilità YARN sono configurate per consentire operazioni YARN e HDFS ininterrotte nonostante eventuali errori/riavvii a livello di singolo nodo.
Terminazione del driver del job: il driver/programma principale di tutti i job eseguiti rappresenta comunque un potenziale punto singolo di errore se la correttezza del job dipende dall'esecuzione corretta del programma 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 del job corrispondenti. Affinché i singoli job siano resilienti ai guasti di un singolo nodo utilizzando un cluster Cloud Dataproc HA, il job deve 1) essere eseguito senza un programma driver sincrono o 2) deve 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 agli errori.
Errore zonale:come per tutti i cluster Managed Service for Apache Spark, tutti i nodi di un cluster ad alta disponibilità 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 HA sono denominati
cluster-name-m-0, cluster-name-m-1, cluster-name-m-2.
Apache ZooKeeper
In un cluster Managed Service for Apache Spark HA, il componente Zookeeper viene installato automaticamente sui nodi master del cluster. Tutti i nodi 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:
cluster-name-mcorse:- NameNode
- NameNode secondario
In un cluster Managed Service for Apache Spark ad alta disponibilità:
cluster-name-m-0ecluster-name-m-1esecuzione:- NameNode
- ZKFailoverController
- Tutti i master eseguono JournalNode
- Non esiste un NameNode secondario
Per ulteriori dettagli sui componenti, consulta la documentazione relativa all'alta disponibilità 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 disponibilità, tutti i master eseguono ResourceManager.
Per ulteriori dettagli sui componenti, consulta la documentazione relativa all'alta disponibilità di YARN.
Crea un cluster ad alta disponibilità
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 del worker principale. In Configurazione aggiuntiva, puoi modificare Nodo driver per deselezionare la casella di controllo Imposta il nodo driver come il worker principale, quindi specificare le impostazioni del nodo driver.
Comando g-cloud
Per creare un cluster HA 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 HA, utilizza l'API
clusters.create, impostando
masterConfig.numInstances
su 3.