Ho creato un'applicazione Spark e Flink k-means. Il mio caso di test è un clustering su 1 milione di punti su un cluster a 3 nodi.Spark vs Flink memoria disponibile
Quando iniziano i colli di bottiglia in memoria, Flink inizia a esternalizzare su disco e funziona lentamente ma funziona. Tuttavia, Spark perde gli esecutori se la memoria è piena e ricomincia (ciclo infinito?).
Cerco di personalizzare l'impostazione della memoria con l'aiuto della mailing list qui, grazie. Ma Spark non funziona ancora.
È necessario impostare qualsiasi configurazione? Voglio dire che Flink funziona con poca memoria, Spark deve anche essere in grado di; o no?
Spark può serializzare i dati su disco ma richiede che parti dei dati si trovino nell'heap della JVM per determinate operazioni. Se la dimensione dell'heap non è sufficiente, il processo muore con un errore OutOfMemoryError. Al contrario, il motore di Flink non accumula molti oggetti nell'heap ma li memorizza in un'area di memoria dedicata. Tutti gli operatori sono implementati in modo tale da poter gestire pochissima memoria e possono riversare su disco. Questo [post di blog] (http://flink.apache.org/news/2015/05/11/Juggling-with-Bits-and-Bytes.html) discute della gestione della memoria di Flink e del suo funzionamento su dati binari. –