apache-spark - speculation - use spark




Qual รจ la relazione tra lavoratori, istanze di lavoratori ed esecutori? (3)

Nella modalità Spark Standalone , ci sono nodi master e worker.

Ecco alcune domande:

  1. L'istanza di 2 worker indica un nodo di lavoro con 2 processi di lavoro?
  2. Ogni istanza di lavoro contiene un esecutore per l'applicazione specifica (che gestisce l'archiviazione, l'attività) o un nodo di lavoro contiene un esecutore?
  3. C'è un diagramma di flusso che spiega come il runtime di accensione, come il conteggio delle parole?

Estendendo ad altre grandi risposte, mi piacerebbe descriverle con poche immagini.

Nella modalità Spark Standalone, ci sono nodi master e nodi worker.

Se rappresentiamo sia il comandante che i lavoratori in un unico luogo per la modalità autonoma.

Se sei curioso di sapere come funziona Spark con YARN? controlla questo post

1. L'istanza di 2 worker indica un nodo di lavoro con 2 processi di lavoro?

In generale, chiamiamo l'istanza worker come slave in quanto è un processo per eseguire attività spark / job . Il mapping suggerito per il nodo (una macchina fisica o virtuale) e il lavoratore è,

1 Node = 1 Worker process

2. Ogni istanza di lavoro contiene un esecutore per l'applicazione specifica (che gestisce l'archiviazione, l'attività) o un nodo di lavoro contiene un esecutore?

Sì, un nodo di lavoro può contenere più esecutori (processi) se ha CPU, memoria e spazio di archiviazione sufficienti .

Controlla il nodo Worker nell'immagine specificata.

A proposito, il numero di esecutori in un nodo di lavoro in un dato momento dipende interamente dal carico di lavoro sul cluster e dalla capacità del nodo di eseguire quanti esecutori.

3. C'è un diagramma di flusso che spiega come funziona la scintilla?

Se guardiamo l'esecuzione da Spark prospettica a qualsiasi gestore di risorse per un programma, che join due rdd e eseguono un'operazione di reduce , quindi filter

HIH


Come diceva Lan, l'uso di più istanze di lavoro è rilevante solo in modalità standalone. Ci sono due ragioni per cui vuoi avere più istanze: (1) il collector di pause di garbage può danneggiare il throughput per JVM di grandi dimensioni (2) La dimensione di heap di> 32 GB non può essere utilizzata da CompressedOoops

Ulteriori informazioni su come impostare più istanze di lavoro .


Suggerisco di leggere prima i documenti del cluster Spark , ma ancora di più questo post sul blog di Cloudera che spiega queste modalità.

La tua prima domanda dipende da cosa intendi per "istanze". Un nodo è una macchina e non c'è una buona ragione per eseguire più di un lavoratore per macchina. Quindi due nodi operai in genere significano due macchine, ciascuna opera Spark.

I lavoratori detengono molti esecutori, per molte applicazioni. Un'applicazione ha esecutori su molti lavoratori.

La tua terza domanda non è chiara.







apache-spark-standalone