es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cuál es la diferencia entre trabajar con clústeres en Spark y operaciones paralelas en local?

He estado estudiando sobre big data por un tiempo. Y actualmente estoy tratando de usar PySpark :). Pero en cierto punto, estoy realmente confundido. Por ejemplo, según sé, Spark, dependiendo de su opción RDD, hace la paralelización automáticamente. Entonces, ¿por qué utilizamos clusters en lugar de utilizar esta paralelización local? ¿O utilizamos el modo cluster solo para datos realmente grandes (no hablo del modo de implementación, solo hablo de 2 o 3 o 4 esclavos)? En realidad, imagino la paralelización así: por ejemplo, mi computadora tiene 12 núcleos, por lo que pienso que estos 12 núcleos son computadoras individuales y, por lo tanto, tengo 12 computadoras. Por lo tanto, debido a este pensamiento, me parece innecesario usar un clúster, por ejemplo, en EMR, un nodo maestro y 2 nodos esclavos. Y cuando tengo 2 esclavos, ¿la paralelización continúa en ellos también? Por ejemplo, ¿tengo 2 esclavos y cada uno de ellos tiene 12 núcleos como mi computadora, por lo que tengo 24 núcleos en esta situación? Si es complicado y el título es incorrecto o insuficiente, puedo editarlo. Gracias de antemano.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en Apache Spark, PySpark, big data y Amazon EMR, puedo entender por qué podrías sentirte confundido sobre por qué usamos clústeres cuando Spark ya proporciona paralelización automática a través de su opción RDD.

    En primer lugar, es importante destacar que la paralelización local está limitada por los recursos de una sola máquina, mientras que la paralelización en clúster nos permite escalar horizontalmente a través de múltiples máquinas, lo que nos permite procesar conjuntos de datos mucho más grandes.

    Además, el modo de clúster nos permite distribuir la carga de trabajo entre múltiples máquinas, lo que puede mejorar el rendimiento al reducir el tiempo necesario para procesar conjuntos de datos grandes.

    En cuanto a tu ejemplo de tener 12 núcleos en tu computadora personal e imaginar cada núcleo como una computadora individual, es importante destacar que esta no es una representación precisa de cómo funciona la paralelización. Si bien cada núcleo puede operar de manera independiente, aún comparten recursos, como memoria y operaciones de entrada/salida.

    En cambio, el uso de un clúster nos permite distribuir la carga de trabajo entre múltiples máquinas, cada una con sus propios recursos, incluyendo almacenamiento, memoria y potencia de procesamiento. Esto nos permite procesar conjuntos de datos mucho más grandes de manera más eficiente.

    Entonces, en resumen, aunque la paralelización local a través de la opción RDD puede ser útil para conjuntos de datos pequeños, el uso de un clúster es necesario al tratar con conjuntos de datos grandes para lograr un rendimiento y escalabilidad óptimos.

Comments are closed.