Spark es un sistema de computación en clúster. Es más rápido en comparación con otros sistemas informáticos de clúster (como Hadoop). Proporciona API de alto nivel en Python, Scala y Java. Los trabajos paralelos son fáciles de escribir en Spark. En este artículo, discutiremos los diferentes componentes de Apache Spark.
Spark procesa una gran cantidad de conjuntos de datos y es el proyecto de Apache más activo en la actualidad. Spark está escrito en Scala y proporciona API en Python , Scala , Java y R. La característica más importante de Apache Spark es su computación en clúster en memoria que amplía la velocidad del proceso de datos. Spark es una plataforma de procesamiento general y más rápida adicional. Nos ayuda a ejecutar programas relativamente más rápido que Hadoop (es decir, cien veces más rápido en la memoria y diez veces más rápido incluso en el disco). Las principales características de chispa son:
- Compatibilidad con varios idiomas: Apache Spark admite varios idiomas; proporciona API’s escritas en Scala, Java, Python o R. Permite a los usuarios escribir aplicaciones en varios idiomas.
- Velocidad rápida: la característica más importante de Apache Spark es su velocidad de procesamiento. Permite que la aplicación se ejecute en un clúster de Hadoop , hasta cien veces más rápido en la memoria y diez veces más rápido en el disco.
- Se ejecuta en todas partes: Spark se ejecutará en varias plataformas sin aumentar la velocidad de procesamiento. Se ejecutará en Hadoop, Kubernetes, Mesos, Standalone e incluso dentro de la nube.
- Propósito general: está alimentado por una gran cantidad de bibliotecas para el aprendizaje automático (es decir , MLlib , DataFrames y SQL al lado de Spark Streaming y GraphX). Se permite usar una combinación de esas bibliotecas que están asociadas coherentemente con la aplicación. La característica de mezclar transmisión, SQL y análisis complicados, dentro de la misma aplicación, convierte a Spark en un marco general.
- Análisis avanzado: Apache Spark también es compatible con «Mapa» y «Reducir» que se mencionó anteriormente. Sin embargo, al lado de MapReduce, admite transmisión de datos, consultas SQL, algoritmos gráficos y aprendizaje automático. Por lo tanto, Apache Spark puede usarse para realizar análisis avanzados.
Componentes de chispa:
La figura anterior ilustra todos los componentes de la chispa. Entendamos cada uno de los componentes en detalle:
- Spark Core: todas las funcionalidades proporcionadas por Apache Spark se basan en la parte superior de Spark Core. Brinda velocidad al proporcionar capacidad de cálculo en memoria. Spark Core es la base del procesamiento paralelo y distribuido de conjuntos de datos gigantes. Es la columna vertebral principal de las funcionalidades de E/S esenciales y es importante en la programación y observación del papel del grupo de chispas. Contiene todos los componentes relacionados con la programación, distribución y supervisión de trabajos en un clúster, despacho de tareas, recuperación de fallas. Las funcionalidades de este componente son:
- Contiene la funcionalidad básica de chispa. (Programación de tareas, administración de memoria, recuperación de fallas, interacción con sistemas de almacenamiento).
- Hogar de la API que define los RDD.
- Datos estructurados Spark SQL: el componente Spark SQL se construye sobre el núcleo Spark y se utiliza para proporcionar el procesamiento estructurado de los datos. Proporciona acceso estándar a una variedad de fuentes de datos. Incluye Hive, JSON y JDBC. Admite la consulta de datos a través de SQL o del lenguaje Hive. Esto también funciona para acceder a información estructurada y semiestructurada. También proporciona una aplicación analítica potente e interactiva tanto en transmisión como en datos históricos. Spark SQL podría ser un nuevo módulo en Spark que integre el proceso relativo con Spark con la API de programación. La funcionalidad principal de este módulo es:
- Es un paquete de Spark para trabajar con datos estructurados.
- Admite muchas fuentes de datos, incluidas tabletas Hive, parquet, json.
- Permite a los desarrolladores mezclar SQK con la manipulación de datos mediante programación compatible con RDD en python, scala y java.
- Spark Streaming: Spark Streaming permite un proceso de flujo ascendente, de alto rendimiento y tolerante a fallas de flujos de datos en vivo. Spark puede acceder a datos de una fuente como un canal, un socket TCP. Operará diferentes algoritmos en los que recibe los datos en un sistema de archivos, una base de datos y un tablero en vivo. Spark utiliza Micro-lotes para la transmisión en tiempo real. El microprocesamiento es una técnica que permite que un método o una tarea traten un flujo como una secuencia de pequeños lotes de información. Por lo tanto, Spark Streaming agrupa los datos en vivo en pequeños lotes. Lo entrega al sistema por lotes para su procesamiento. La funcionalidad de este módulo es:
- Permite el procesamiento de flujos de datos en vivo como archivos de registro generados por servicios web de producción.
- Las API definidas en este módulo son bastante similares a las API de Spark Core RDD.
- Mlib Machine Learning: MLlib en Spark es una biblioteca de aprendizaje automático escalable que contiene varios algoritmos de aprendizaje automático. El motivo detrás de la creación de MLlib es simplificar la implementación del aprendizaje automático. Contiene bibliotecas de aprendizaje automático y la implementación de varios algoritmos. Por ejemplo, agrupamiento , regresión , clasificación y filtrado colaborativo .
- Procesamiento de gráficos GraphX: Es una API para gráficos y ejecución paralela de gráficos. Hay análisis de red en los que almacenamos los datos. La agrupación, la clasificación, el recorrido, la búsqueda y la búsqueda de rutas también son posibles en el gráfico. Generalmente optimiza cómo podemos representar vértices y bordes en un gráfico. GraphX también optimiza cómo podemos representar vértices y bordes cuando son tipos de datos primitivos. Para respaldar el cálculo de gráficos, admite operaciones fundamentales como subgráficos, une vértices y agrega mensajes, así como una variante optimizada de la API de Pregel.
Usos de Apache Spark: Las principales aplicaciones del framework spark son:
- Los datos generados por los sistemas no son lo suficientemente consistentes como para mezclarlos para el análisis. Para obtener información coherente de los sistemas, utilizaremos procesos como extraer, transformar y cargar, lo que reduce el tiempo y el costo, ya que se implementan de manera muy eficiente en Spark.
- Es difícil manejar los datos generados por el tiempo como archivos de registro. Spark tiene la capacidad suficiente para funcionar bien con flujos de información y operaciones de reutilización.
- Como Spark es capaz de almacenar información en la memoria y puede ejecutar consultas continuas rápidamente, hace que sea sencillo descubrir los algoritmos de aprendizaje automático que se pueden usar para un tipo particular de datos.
Publicación traducida automáticamente
Artículo escrito por ayushjoshi599 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA