La mayor parte de la ejecución se realiza en un único nodo. Si la ejecución necesita más de un nodo o del procesamiento en paralelo, como sucede en muchos problemas de cálculo científico, entonces usamos equipos en paralelo. En otras palabras, un equipo en paralelo consiste en múltiples nodos de procesamiento individual con prestaciones especiales conectado a una red. Por ejemplo, en un hipotético centro de datos podemos tener un superordenador con 1024 nodos de procesamiento de 16 núcleos cada uno, lo que equivale a 16.384 núcleos de procesamiento en total.
Este tipo de equipo especializado es bastante caro en comparación con su pariente más reciente, el cluster básico. El término "cluster básico" (commodity cluster, en inglés) se escucha muy habitualmente en conversaciones sobre Big Data. ¿Te has preguntado alguna vez lo que significa exactamente? Los clusters básicos son equipos paralelos asequibles con un número medio de nodos. No son tan potentes como los equipos paralelos tradicionales y muchas veces se construyen a partir de nodos menos especializados. De hecho, los nodos del cluster básico son más genéricos en sus capacidades de procesamiento.
Ejemplo de instalación de Superordenador Paralelo en un centro de datos |
La comunidad de informática orientada a servicios ha fomentado que el procesamiento distribuido se realice en clusters básicos, lo que de hecho resulta en una reducción de coste en el procesamiento sobre Internet.
En los clusters básicos los nodos se agrupan en bastidores conectados entre sí a través de una red rápida. El número de estos bastidores (racks) es muy ampliable. El procesamiento en uno o más de estos clusters a través de una red de área local o de Internet se denomina procesamiento distribuido.
Este tipo de arquitecturas permite lo que se denomina paralelismo de datos. En el paralelismo de datos muchos jobs que no comparten nada pueden trabajar sobre diferentes conjuntos de datos o partes de un conjunto de datos. Este tipo de paralelismo a veces se conoce como paralelismo a nivel de job, pero en este curso me voy a referir a él como paralelismo de datos en el contexto del procesamiento de Big Data. El gran volumen y diversidad de Big Data puede analizarse utilizando este modo de paralelismo, con el que se consigue escalabilidad, rendimiento y reducción de costes.
Como puedes imaginar, existen muchos puntos potenciales de fallo dentro de los sistemas. Podría fallar un nodo o un rack completo en cualquier momento dado, puede detenerse la conectividad de un rack con la red, o las conexiones entre nodos individuales se pueden romper. Si ocurre un fallo, no es práctico reiniciarlo todo cada vez. La capacidad de recuperarse de tales fallos se denomina tolerancia ante fallos. Para implementar la tolerancia ante fallos en este tipo de sistemas hay dos soluciones posibles, a saber, el almacenamiento redundante de datos y el reinicio de jobs individuales fallidos. Voy a explicar estas dos soluciones en un próximo artículo.
Resumiendo:
Los clusters básicos proporcionan una manera rentable de conseguir la escalabilidad de datos en paralelo para las aplicaciones de Big Data. Este tipo de sistema tiene un riesgo potencial más elevado de fallo parcial. Es este tipo de procesamiento distribuido el que ha impulsado un cambio hacia sistemas rentables, fiables y con tolerancia a fallos para la gestión y el análisis de grandes volúmenes de datos.
0 comentarios:
Publicar un comentario
Gracias por participar en esta página.