Introducción a la arquitectura Apache Spark

Este artículo define los conceptos de Apache Spark Architecture y sus componentes. Se considera un procesamiento de datos de nivel máximo en Apache Software Foundation. En última instancia, se considera que Spark es otra posibilidad para Hadoop y Map Reduce.

Spark es una arquitectura de código abierto con componentes bien definidos que ayudan a analizar una gran cantidad de datos y funcionan para la informática distribuida. Spark está escrito en Scala con funciones habilitadas como API, R y ha enriquecido un conjunto de bibliotecas que facilita el procesamiento de datos. Apache Spark tiene su computación de clúster individual para una accesibilidad más rápida y se ejecuta en diferentes plataformas.

Apache Spark tiene una amplia gama de características como velocidad de ejecución de procesos en memoria más rápidos, se adapta a múltiples lenguajes de programación, ha mejorado las técnicas de almacenamiento en caché y admite consultas SQL, aprendizaje automático. Se ejecuta en plataformas como los sistemas operativos Microsoft Windows y Linux. Su implementación dice que también podrían ejecutarse en una sola máquina y modo de clúster.

Arquitectura Apache Spark

La arquitectura de la chispa de Apache tiene componentes sueltos. Spark considera el proceso maestro / trabajador en la arquitectura y todas las tareas funcionan en la parte superior del sistema de archivos distribuido de Hadoop. Apache spark utiliza Hadoop para el procesamiento de datos y los procesos de almacenamiento de datos. Se consideran motores de procesamiento de datos en memoria y hacen que sus aplicaciones se ejecuten en clústeres de Hadoop más rápido que una memoria. Tener un procesamiento en memoria evita la falla de la E / S del disco. Spark permite que el trabajo heterogéneo funcione con los mismos datos. Spark divide sus datos en particiones, el tamaño de las particiones divididas depende de la fuente de datos dada.

A continuación se muestran las dos implementaciones principales de Apache Spark Architecture:

1. Conjuntos de datos distribuidos resilientes (RDD)

Es responsable de proporcionar API para controlar el almacenamiento en caché y la partición. Es un conjunto de herramientas importante para el cálculo de datos. Ayuda a volver a calcular elementos en caso de fallas y se consideran datos inmutables y actúa como una interfaz. Transformaciones y acciones son las dos operaciones realizadas por RDD.

2. Gráfico acíclico dirigido (DAG)

Forma una conexión de secuencia de un nodo a otro. El controlador convierte el programa en DAG para cada trabajo. El ecosistema Apache Spark tiene varios componentes como el núcleo API, Spark SQL, Streaming y procesamiento en tiempo real, MLIB y Graph X. Algunas terminologías que se deben aprender aquí son Spark shell que ayuda a leer grandes volúmenes de datos, contexto Spark. cancelar, ejecutar un trabajo, tarea (un trabajo), trabajo (cálculo)

Componentes de la arquitectura Apache Spark

Los cuatro componentes principales de Spark se detallan a continuación y es necesario comprenderlos para el marco completo.

  1. Chispa Conductor
  2. Ejecutores
  3. Cluster Manager
  4. Nodos de trabajador

El siguiente diagrama muestra la Arquitectura y Componentes de la chispa:

Higo: modo independiente de Apache Spark Architecture

El flujo de ejecución comienza de la siguiente manera:

1. Spark Driver

La responsabilidad del conductor es coordinar las tareas y los trabajadores para la gestión. Es un proceso de aplicación JVM y se considera como un nodo maestro. Un conductor divide la chispa en tareas y cronogramas para ejecutar en los ejecutores en los grupos. En el diagrama, los programas de controlador invocan la aplicación principal y crean un contexto de chispa (actúa como una puerta de enlace) supervisan colectivamente el trabajo que trabaja dentro del clúster dado y se conectan a un clúster de Spark. Todas las funcionalidades y los comandos se realizan a través del contexto de chispa.

El contexto de chispa es una entrada para cada sesión. El controlador Spark tiene más componentes para ejecutar trabajos en los clústeres. Los clústeres de chispa se conectan a diferentes tipos de administradores de clúster y simultáneamente el contexto adquiere nodos de trabajo para ejecutar y almacenar datos. En el clúster, cuando ejecutamos el proceso, su trabajo se subdivide en etapas con etapas de ganancia en tareas programadas.

2. Ejecutor

Es responsable de la ejecución de un trabajo y almacena datos en un caché. En la etapa inicial, los ejecutores se registran con los controladores. Este ejecutor tiene varios intervalos de tiempo para ejecutar la aplicación simultáneamente. Los ejecutores realizan procesos de lectura / escritura en fuentes externas. El ejecutor ejecuta el trabajo cuando ha cargado datos y se han eliminado en el modo inactivo. El ejecutor está habilitado por la asignación dinámica y se incluyen y excluyen constantemente según la duración. Durante la ejecución de las tareas, los ejecutores son monitoreados por un programa controlador. Los ejecutores ejecutan la tarea de los usuarios en el proceso de Java.

3. Administrador de clústeres

Ayuda a gestionar los clústeres que tienen un maestro y un número de esclavos. Hay dos tipos de administradores de clúster como YARN y autónomos, ambos administrados por Resource Manager y Node. el trabajo en clúster en Stand-alone requiere Spark Master y el nodo de trabajo como sus roles. La responsabilidad del administrador del clúster es asignar recursos y ejecutar la tarea,

4. Nodos de trabajo

Son los nodos esclavos; la responsabilidad principal es ejecutar las tareas y la salida de ellas se devuelve al contexto de chispa. Se comunican con el nodo maestro sobre la disponibilidad de los recursos. El contexto de Spark lo ejecuta y emite a los nodos de trabajo. A cada nodo de trabajo se le asigna un trabajador de chispa para el monitoreo. Realizan el cálculo de manera muy simple al aumentar los nodos de trabajo (de 1 a n no de trabajadores) para que todas las tareas se realicen en paralelo dividiendo el trabajo en particiones en múltiples sistemas. La otra tarea del elemento se considera una unidad de trabajo y se asigna a un ejecutor, para cada chispa de partición se ejecuta una tarea.

Conclusión

Por lo tanto, al comprender la arquitectura Apache Spark, significa cómo implementar grandes datos de una manera fácil. En última instancia, hemos aprendido su accesibilidad y sus roles de componentes, lo cual es muy beneficioso para la informática de clúster y la tecnología de big data. Spark calcula los resultados deseados de una manera más fácil y preferida en el procesamiento por lotes.

Las características distintivas de Spark, como los conjuntos de datos y los marcos de datos, ayudan a optimizar el código de los usuarios. Una característica importante como el motor SQL promueve la velocidad de ejecución y hace que este software sea versátil. Por lo tanto, hemos visto que las aplicaciones de chispa se ejecutan localmente o se distribuyen en un clúster. Apache Spark se considera un gran complemento en una amplia gama de industrias, como el big data. En resumen, la chispa ayuda a resolver tareas computacionales elevadas.

Artículos recomendados

Esta es una guía de Apache Spark Architecture. Aquí discutimos la Introducción a la Arquitectura Apache Spark junto con los Componentes y el diagrama de bloques de Apache Spark. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Comandos de Spark Shell
  2. Ecosistema Apache Hadoop
  3. Arquitectura de Big Data
  4. ¿Qué es apache?

Categoría: