La directory deve essere utilizzata per lo spazio "scratch" in Spark, inclusi i file di output della mappa e gli RDD che vengono memorizzati sul disco. [Ref. Spark Configuration.]
Questo dovrebbe trovarsi su un disco locale veloce nel sistema. Può anche essere un elenco separato da virgole di più directory su diversi dischi.
Tuttavia, il problema che si sta affrontando qui è anche chiamato persistenza RDD. Tra le nozioni di base che dovresti già sapere utilizzando la memorizzazione nella cache di Spark, c'è anche il livello di archiviazione di un RDD che consente un diverso livello di archiviazione.
Questo vi allowe, per esempio, al persistono il set di dati sul disco, persistono nella memoria, ma come oggetti serializzati Java (per risparmiare spazio), replicarlo tra i nodi, o riporlo off -heap in Tachyon(Quest'ultima è sperimentale). More information here.
Nota: Questi livelli vengono impostati passando un oggetto StorageLevel (Scala, Java, Python) a persist
. Il metodo cache
è una scorciatoia per l'utilizzo del livello di archiviazione predefinito, ovvero StorageLevel.MEMORY_ONLY
in cui Spark memorizza gli oggetti deserializzati.
Quindi, per rispondere alla tua domanda ora,
se il mio output intermedio è di 2 GB e la mia RAM è di 1 GB, quindi quello che succede in questo caso?
Dico che dipende da come si configura e si ottimizza Spark (app, cluster).
Nota: L'in-memory di Spark è simile a qualsiasi sistema in memoria nel mondo concept-saggio, l'obiettivo principale è quello di evitare IO pesanti e costosi. Il che significa anche, se torno alla tua domanda che se hai deciso di persistere su DISK per dire, perderai le prestazioni. Maggiori informazioni su questo nella documentazione ufficiale a cui si fa riferimento nella risposta.
ex - Ho 2 TB di dati. Voglio fare il conteggio delle parole su quei dati.Quindi nel conteggio delle parole abbiamo due trasformazioni, giusto. durante la creazione di RDD da una trasformazione a un'altra trasformazione, crea un RD in un altro RDD. secondo RDD memorizza i dati in memoria, quindi se la mia dimensione della RAM non è più adatta allora questa condizione accadrà. potrebbe essere una domanda sbagliata. puoi spiegarmi l'esempio di conteggio delle parole. –