Las empresas utilizan Hadoop ampliamente para examinar sus índices informativos. La razón es que el sistema Hadoop depende de un modelo de programación básico: MapReduce y permite un arreglo de procesamiento que es versátil, adaptable, tolerante a la culpa y con conocimientos financieros.
Sin embargo, la principal preocupación es mantener la velocidad en el manejo de vastos conjuntos de datos. en cuanto a retrasar el tiempo entre las consultas y retrasar el tiempo para ejecutar el programa. La siguiente imagen justifica claramente la limitación.
La respuesta a la pregunta “¿Cómo superar las limitaciones de Hadoop MapReduce?” Es Apache Spark . No interprete que Spark y Hadoop son competidores.
Evolución con Apache Spark
Spark fue presentado por Apache Software Foundation para acelerar el proceso de programación de registro computacional de Hadoop y superar sus limitaciones. Los rumores sugieren que Spark no es más que una versión alterada de Hadoop y no depende de Hadoop.
Pero el hecho es “Hadoop es uno de los enfoques para implementar Spark, por lo que no son los competidores, son compensadores”.
La siguiente instantánea justifica claramente cómo el procesamiento de Spark representa la limitación de Hadoop.
Apache Spark es una tecnología de cómputo de clústeres excepcional, diseñada para cálculos rápidos. Depende de Hadoop MapReduce y extiende el modelo de MapReduce para utilizarlo de manera efectiva para más tipos de cálculos, que incorporan preguntas intuitivas y manejo de flujos.
El elemento fundamental de Spark es su agrupamiento en memoria que expande el ritmo de preparación de una aplicación.
Sobre qué trata Apache Spark?
Apache Spark es un sistema de computación en clúster muy veloz. Proporciona el conjunto de API de alto nivel, a saber, Java, Scala, Python y R para el desarrollo de aplicaciones. Apache Spark es una herramienta para ejecutar rápidamente aplicaciones Spark.
Spark utiliza Hadoop de dos maneras diferentes: una es para almacenamiento y la segunda para el manejo de procesos. Solo porque Spark tiene su propia administración de clústeres, utiliza Hadoop para el objetivo de almacenamiento.
Spark está diseñado para cubrir una amplia variedad de cargas restantes, por ejemplo, aplicaciones de clústeres, cálculos iterativos, preguntas intuitivas y transmisión. Además de soportar todas estas tareas restantes en un marco particular, disminuye el peso de la administración de mantener aparatos aislados.
Spark es una de las subventas de Hadoop creada en 2009 en el AMPLab de UC Berkeley por Matei Zaharia. Fue abierto en 2010 en virtud de una licencia BSD.
Fue otorgado al establecimiento de programación de Apache en 2013, y ahora Apache Spark se ha convertido en la empresa de Apache de mejor nivel desde febrero de 2014. Y ahora los resultados están bastante en auge.
Encuesta y casos de uso en tiempo real
Las reglas del mercado y las grandes agencias ya tienden a usar Spark para sus soluciones. Flabbergast para saber que la lista incluye: Netflix, Uber, Pinterest, Conviva, Yahoo, Alibaba, eBay, MyFitnessPal, OpenTable, TripAdvisor y mucho más.
Se puede decir que la extensión del caso de uso de Apache Spark se extiende desde las finanzas, la asistencia médica, los viajes, el comercio electrónico hasta la industria de medios y entretenimiento.
No ha llegado el momento en que muchos más dominios de ejemplo se desplieguen para usar Spark en un innumerables formas.
Comprendamos más sobre la arquitectura, los componentes y las características de Apache Spark, que serán testigos del motivo por el que Spark es adoptado por una comunidad tan grande.
Los números seguramente te sorprenderán de la encuesta realizada sobre por qué las empresas ¿Desea utilizar el marco como Apache Spark para la computación en memoria?
Apache Spark: Arquitectura
Spark es una herramienta accesible, intensa, potente y eficiente de Big Data para Manejando diferentes enormes desafíos de información. Apache Spark toma después de una ingeniería as / esclavo con dos Daemons primarios y un Administrador de clústeres:
- Master Daemon – (Master / Driver Process)
- Worker Daemon – (Slave Process)
Un clúster de chispas tiene un Master solitario y muchos números de esclavos / trabajadores. El controlador y los agentes ejecutan sus procedimientos Java individuales y los usuarios pueden ejecutarlos en máquinas individuales.
A continuación se muestran los tres métodos para construir Spark con componentes Hadoop (estos tres componentes son pilares sólidos de Spark Architecture):
1.Independiente
El arreglo implica que Spark posee el lugar en la parte superior de HDFS (Hadoop Distributed File System) y el espacio se asignan para HDFS, de manera inequívoca. Aquí, Spark y MapReduce se ejecutarán uno al lado del otro para cubrir todo en forma de Cluster.
2. Hadoop Yarn
El arreglo de Hadoop Yarn implica, básicamente, que Spark sigue funcionando en Yarn sin preestablecimiento o llegar a la raíz requerida. Incorpora Spark en el entorno de Hadoop o en la pila de Hadoop. Permite que diferentes partes se sigan ejecutando en la parte superior de la pila y tienen una asignación explícita para HDFS.
3. Spark en MapReduce
Spark en MapReduce se utiliza para despachar el trabajo de inicio a pesar de la disposición independiente. Con SIMR, el cliente puede comenzar a usar Spark y usar su shell sin acceso regulatorio.
Apache Spark: Componentes del Ecosistema
La garantía de Apache Spark para un manejo más rápido de la información y también un avance más simple es posible solo gracias a los componentes de Apache Spark. Todos resolvieron los problemas que ocurrieron al utilizar Hadoop MapReduce . Ahora, hablemos de cada uno de los componentes del ecosistema de chispa uno por uno –
1. Apache Spark Core
Spark Core es el motor de ejecución general básico para la plataforma Spark en el que se basan todas las demás funcionalidades. Proporciona registro en memoria y conjuntos de datos conectados en marcos de almacenamiento externos.
2. Spark SQL
Spark SQL es un segmento sobre Spark Core que presenta otra abstracción de información llamada SchemaRDD, que ofrece ayuda para sincronizar información estructurada y no estructurada.
3. Spark Streaming
Spark Streaming utiliza la capacidad de programación rápida de Spark Core para realizar Streaming Analytics. Ingiere información en grupos a escala reducida y realiza cambios de RDD (Conjuntos de datos distribuidos resistentes) en esos grupos de información a pequeña escala.
4. MLlib (Machine Learning Library)
MLlib es una estructura de aprendizaje automático distribuido por encima de Spark en vista de la arquitectura Spark basada en memoria distribuida. Es, como lo indican los puntos de referencia, realizado por los ingenieros de MLlib contra las ejecuciones de mínimos cuadrados alternos (ALS).
Spark MLlib es nueve veces más rápido que la versión del disco Hadoop de Apache Mahout (antes de que Mahout adquiriera una interfaz de Spark).
5. GraphX
GraphX es un marco distribuido de procesamiento de gráficos de Spark. Proporciona una API para comunicar el cálculo del gráfico que puede mostrar los diagramas caracterizados por el cliente utilizando la API de abstracción de Pregel. Asimismo, proporciona un tiempo de ejecución optimizado y mejorado a esta abstracción.
6. Spark R
Esencialmente, para utilizar Apache Spark de R. Es el paquete R el que da una interfaz de usuario ligera. Además, permite a los investigadores de la información desglosar conjuntos de datos expansivos.
Asimismo, permite ejecutar empleos intuitivamente en ellos desde el shell R. A pesar de que, la idea principal detrás de SparkR fue investigar diversos métodos para incorporar la facilidad de uso de R con la adaptabilidad de Spark.
Abstracciones y conceptos
En la siguiente sección, se describe brevemente discutido con respecto a las abstracciones y conceptos de Spark:
- RDD (Conjunto de datos distribuido resistente) – RDD es la unidad de datos central y significativa en Apache Spark. Es una colección distribuida de componentes a través de nodos de clúster y puede implementar operaciones paralelas. Las colecciones paralelas, los conjuntos de datos externos y los RDD existentes son los tres métodos para crear RDD.
- DAG (Direct Acyclic Graph) – DAG es un gráfico designado sin secuencias inscritas. Lee datos de HDFS y se aplican las operaciones de Map & Reduce. Comprende una serie de vértices de tal manera que cada borde se dirige desde la inicial hasta el éxito en la progresión.
- Spark Shell – Una Shell interactiva que puede ejecutar una línea de comandos de la aplicación efectiva debido a las pruebas interactivas y capacidad para leer una gran cantidad de fuentes de datos en varios tipos.
- Transformaciones – Construye un nuevo RDD a partir del existente. Transfiere el conjunto de datos a la función y luego devuelve el nuevo conjunto de datos.
- Acciones – Convierte el resultado final al programa del controlador o lo corresponde al almacén de datos externo.
Características de Apache Spark
Spark, diseñado principalmente para Data Science, está considerado como el proyecto de código abierto más grande para el procesamiento de datos.
Hablemos de las características brillantes de Apache Spark:
- Rápido en el procesamiento de datos, 10 veces más rápido en el disco y 100 veces más rápido en la memoria.
- Spark with abstraction-RDD proporciona Fault Tolerance con garantía de pérdida de datos cero.
- Compatibilidad con múltiples idiomas a saber, Java, R, Scala, Python para aplicaciones de construcción.
- Aumento de la eficiencia del sistema debido a Evaluación perezosa de transformación en RDD.
- Procesamiento en memoria que resulta en una alta velocidad de cálculo y flujo de datos acíclico.
- Con 80 operadores de alto nivel es fácil de desarrollar Dinámico y Aplicaciones paralelas.
- Procesamiento de flujo de datos en tiempo real con Spark Streaming.
- Flexible para funcionar Independientemente y puede ser integrado con Hadoop Yarn Cluster Manager.
- Rentable para Big data como necesidad mínima de almacenamiento y centro de datos.
- Análisis futurista con herramientas integradas para aprendizaje automático, consultas interactivas y transmisión de datos.
- Persistencia e Inmutable en la naturaleza con el procesamiento de datos en paralelo sobre el grupo.
- Graphx simplifica Graph Analytics mediante la recopilación de algoritmos y constructores.
- Reutilización del código para el procesamiento por lotes y para ejecutar consultas ad hoc.
- Comunidad de Apache progresiva y en expansión activa para Asistencia rápida.
¿Cuándo usar y cuándo no usar Apache Spark?
El conjunto de características es más que suficiente para justificar las ventajas de usar Apache Spark para análisis de Big Data , sin embargo, para justificar los escenarios cuándo y cuándo no se debe usar Spark es necesario para proporcionar una visión más amplia.
Se puede usar para:
Módulos de implementación que están relacionados de forma conjunta con Data Streaming, Machine Learning, Collaborative Filtering Interactive An Alysis, y Fog Computing seguramente debería usar las ventajas de Apache Spark para experimentar un cambio revolucionario en el almacenamiento descentralizado.
El procesamiento de datos, la clasificación, el agrupamiento, el enriquecimiento de datos, el análisis de sesiones complejas, la detección de eventos activados y la transmisión de ETL.
No se puede utilizar para:
Spark no es apto para un entorno multiusuario. Spark a partir de ahora no es capaz de manejar más concurrencia de usuarios, tal vez en futuras actualizaciones este problema se solucione. Sin embargo, un motor alternativo como Hive para el manejo de proyectos de lotes grandes.
Conclusión
El producto más avanzado y popular de la comunidad de Apache, Spark disminuye la complejidad de tiempo del sistema. Cálculos rápidos, mayor rendimiento, transmisión de datos estructurada y no estructurada, Graph Analytics, capacidades de programación de recursos más ricas que garantizan una experiencia de cliente suave y atractiva, compatible con el sistema.