Todo depende de la aplicación que esté ejecutando y de cómo esté codificada.
Por ejemplo, una aplicación simple de WordCount no usa mucha RAM, ya que cada tarea lee el fragmento de HDFS (predeterminado: 128 MB) y lo procesa sobre la marcha.
Por otro lado, las aplicaciones de aprendizaje automático normalmente almacenan en caché los RDD en la memoria con estructuras complejas con muchos punteros, lo que significa que necesitará más RAM a menos que desee tener muchos derrames de la memoria al disco. También cuenta el tipo de estructuras que utiliza (por ejemplo, el uso de objetos pequeños o una matriz de Ints en lugar de una lista vinculada). Tenga en cuenta que Java devora su memoria cuando usa estructuras costosas de memoria, así que trate de mantenerlo simple.
- ¿Debo actualizar la RAM de mi computadora portátil de 8 a 16 GB?
- ¿Cuál es el tamaño mínimo de RAM que debo buscar en una computadora si planeo usar Photoshop diariamente para mi trabajo?
- ¿Por qué el tamaño de la memoria (RAM) siempre tiene una potencia de 2?
- ¿Por qué Google Chrome toma más RAM que Mozilla Firefox?
- ¿Qué sucede si ejecuta un juego que requiere más RAM de la que tiene actualmente en su computadora portátil?
Yo diría que la mejor manera es iniciar su aplicación y usar la interfaz de usuario de Spark para ver su progreso, y si obtiene errores de memoria o se derrama mucho en el disco, aumente la memoria. Si los dimensiona demasiado grande, obtendrá una recolección de basura más larga y consumirá sus recursos más rápidamente.
Aquí se explica cómo acceder a la interfaz de usuario de Spark.
Monitoreo e Instrumentación