Saltar al contenido

Apache Spark: Plataforma Big Data

20 abril 2020
| Bloque de Anuncios |

Apache Spark es un marco de procesamiento de datos que puede realizar rápidamente tareas de procesamiento en conjuntos de datos muy grandes, y también puede distribuir las tareas de procesamiento de datos entre múltiples computadoras, ya sea por sí solo o en conjunto con otras herramientas informáticas distribuidas. Estas dos cualidades son clave para los mundos de los grandes datos y del aprendizaje automático, que requieren la obtención de una enorme potencia de cálculo para poder atravesar los grandes almacenes de datos. Spark también quita algunas de las cargas de programación de estas tareas de los hombros de los desarrolladores con una API fácil de usar que abstrae gran parte del trabajo pesado de la computación distribuida y el procesamiento de grandes datos.

Desde sus humildes comienzos en el AMPLab de la U.C. Berkeley en 2009, Apache Spark se ha convertido en uno de los principales marcos de procesamiento distribuido de datos del mundo. Spark puede ser desplegado de varias maneras, provee enlaces nativos para los lenguajes de programación Java, Scala, Python, y R, y soporta SQL, datos en tiempo real, aprendizaje automático, y procesamiento de gráficos. Lo encontrarán usado por bancos, compañías de telecomunicaciones, compañías de juegos, gobiernos, y todos los grandes gigantes de la tecnología como Apple, Facebook, IBM, y Microsoft.

Arquitectura

En un nivel fundamental, una aplicación Apache Spark consta de dos componentes principales: un controlador, que convierte el código del usuario en múltiples tareas que pueden distribuirse en nodos de trabajadores, y ejecutores, que se ejecutan en esos nodos y ejecutan las tareas que se les asignan. Es necesario algún tipo de gestor de clústeres para mediar entre ambos.

Fuera de la caja, Spark puede ejecutarse en un modo de cluster autónomo que simplemente requiere el marco de trabajo de Apache Spark y una JVM en cada máquina de su cluster. Sin embargo, es más probable que desee aprovechar un recurso más robusto o un sistema de gestión de clústeres para encargarse de la asignación de trabajadores a petición suya. En la empresa, esto normalmente significará correr en Hadoop YARN (así es como las distribuciones Cloudera y Hortonworks corren los trabajos de Spark), pero Apache Spark también puede correr en Apache Mesos, Kubernetes y Docker Swarm.

| Bloque de Anuncios |

Si busca una solución administrada, entonces Apache Spark puede ser encontrado como parte de Amazon EMR, Google Cloud Dataproc, y Microsoft Azure HDInsight. Databricks, la empresa que emplea a los fundadores de Apache Spark, también ofrece la Plataforma Analítica Unificada de Databricks, que es un servicio gestionado integral que ofrece clusters de Apache Spark, soporte de streaming, desarrollo integrado de portátiles basados en la web, y un rendimiento optimizado de E/S en la nube sobre una distribución estándar de Apache Spark.

Apache Spark construye los comandos de procesamiento de datos del usuario en un Gráfico Acíclico Dirigido, o DAG. El DAG es la capa de programación de Apache Spark; determina qué tareas se ejecutan en qué nodos y en qué secuencia.

Spark o Hadook

La comparación no tiene mucho sentido ya que encontrarán Spark incluido en la mayoría de las distribuciones de Hadoop en estos días. Pero debido a dos grandes ventajas, Spark se ha convertido en el marco de elección cuando se procesan grandes datos, superando el viejo paradigma de MapReduce que llevó al Hadoop a la prominencia.

| Bloque de Anuncios |