Spark Streaming - Guía completa de transmisión de chispas

Tabla de contenido:

Anonim

Introducción a Spark Streaming

Apache Spark Streaming es uno de los principales componentes esenciales de Apache Spark, que es el procesamiento en tiempo real de la utilidad de datos que se utiliza para transmitir los datos en tiempo real, a diferencia de los trabajos por lotes tradicionales de Hadoop que se utilizaron para ejecutar trabajos por lotes. de transmisión de datos en tiempo real. Utiliza la capacidad de programación rápida de Spark core para realizar análisis rápidos de transmisión de chispas que esencialmente implican la ingestión de datos en forma de micro y mini lotes para realizar las transformaciones RDD en esos conjuntos de datos en un período de ventana particular. La transmisión de Apache Spark está destinada a consumir desde muchos canales ascendentes, completando así la tubería, como Apache Kafka, Flume, RabbitMQ, ZeroMQ, Kinesis, sockets TCP / IP, Twitter, etc. Los conjuntos de datos estructurados que están disponibles en Spark 2. Las versiones x + se utilizan para la transmisión estructurada.

¿Cómo funciona Spark Streaming?

  • En el caso de Spark Streaming, los flujos de datos se dividen en lotes fijos, también llamados DStreams, que es internamente una secuencia de tipo fijo del número de RDD. Por lo tanto, los RDD se procesan mediante el uso de Spark API y los resultados devueltos, por lo tanto, están en lotes. Las operaciones de flujo discretizadas que son transformaciones con estado o sin estado también consisten junto con las operaciones de salida, las operaciones de entrada de DStream y también los receptores. Estos Dstreams son el nivel básico de abstracción proporcionado por la transmisión Apache Spark, que es un flujo continuo de los RDD de Spark.
  • También proporciona las capacidades para la tolerancia a fallas que se utilizarán para Dstreams bastante similares a los RDD, siempre que la copia de los datos esté disponible y, por lo tanto, cualquier estado pueda ser recalculado o devuelto al estado original haciendo uso del gráfico de linaje de Spark sobre el conjunto de RDDs. El punto a considerar aquí es que los Dstreams se utilizan para traducir las operaciones básicas en su conjunto subyacente de RDD. Estas transformaciones basadas en RDD son realizadas y calculadas por Spark Engine. Las operaciones de Dstream se utilizan para proporcionar el nivel básico de detalles y proporcionar al desarrollador un alto nivel de API para fines de desarrollo.

Ventajas de Spark Streaming

Hay varias razones por las cuales el uso de la transmisión de Spark es una ventaja adicional. Vamos a discutir algunos de ellos en nuestra publicación aquí.

  1. Unificación de Stream, Batch y cargas de trabajo interactivas: los conjuntos de datos se pueden integrar y usar fácilmente con cualquiera de las cargas de trabajo que nunca fueron una tarea fácil de realizar en sistemas continuos y, por lo tanto, esto sirve como un solo motor.
  2. Nivel avanzado de análisis junto con aprendizaje automático y consultas SQL: cuando trabaja en cargas de trabajo complejas, siempre requiere el uso de aprendizaje continuo y también con los modelos de datos actualizados. La mejor parte de este componente de Spark es que se integra fácilmente con MLib o cualquier otra biblioteca de aprendizaje automático dedicada.
  3. Falla rápida y también recuperación para rezagados: la recuperación de fallas y la tolerancia a fallas es una de las características principales básicas que están disponibles en la transmisión de Spark.
  4. Equilibrio de carga: los cuellos de botella a menudo se producen entre sistemas debido a cargas y equilibrios desiguales que se están realizando y, por lo tanto, se hace bastante necesario equilibrar la carga de manera uniforme, que este componente de Spark maneja automáticamente.
  5. Rendimiento: debido a su técnica de cálculo en memoria que hace uso de la memoria interna más que del disco duro externo, el rendimiento de Spark es muy bueno y eficiente en comparación con otros sistemas Hadoop.

Operaciones de transmisión de chispas

1) Operaciones de transformación en la transmisión de Spark: de la misma manera que los datos se transforman del conjunto de RDD aquí, también los datos se transforman de DStreams y ofrece muchas transformaciones que están disponibles en los RDD de Spark normales. Algunos de ellos son:

  • Map (): Esto se usa para devolver una nueva forma de Dstream cuando cada elemento se pasa a través de una función.
    Por ejemplo, data.map (line => (line, line.count))
  • flatMap (): este es similar al mapa, pero cada elemento se asigna a 0 o más unidades asignadas.
    Ejemplo, data.flatMap (lines => lines.split (""))
  • filter (): este se usa para devolver un nuevo conjunto de Dstream devolviendo los registros que se filtran para nuestro uso.
    Ejemplo, filtro (valor => valor == "chispa")
  • Union (): se utiliza para devolver un nuevo conjunto de Dstream que consiste en los datos combinados de los Dstreams de entrada y otros Dstreams.
    Ejemplo, Dstream1.union (Dstream2) .union (Dstream3)

2) Actualizar estado por operación clave

Esto le permite mantener un estado arbitrario incluso cuando se actualiza continuamente con una nueva información. Debería definir el estado que puede ser de tipo arbitrario y definir la función de actualización de estado, lo que significa especificar el estado utilizando el estado anterior y también hacer uso de nuevos valores de una secuencia de entrada. En cada sistema por lotes, una chispa aplicará la misma función de actualización de estado para todas las teclas que prevalecen.

Ejemplo:

Función de actualización de def (NV, RC):

si RC es Ninguno:

RC = 0

suma de retorno (NV, RC) #Nv son valores nuevos y RC está ejecutando cuenta

Conclusión

Spark Streaming es uno de los sistemas más eficientes para construir la tubería de tipo de transmisión real y, por lo tanto, se utiliza para superar todos los problemas que se encuentran al usar los sistemas y métodos tradicionales. Por lo tanto, todos los desarrolladores que están aprendiendo a abrirse paso en el componente de transmisión por chispa han pisado el punto más adecuado de un marco que se puede utilizar para satisfacer todas las necesidades de desarrollo. Por lo tanto, podemos decir con seguridad que su uso mejora la productividad y el rendimiento en los proyectos y empresas que intentan o esperan utilizar el ecosistema de big data. Espero que les haya gustado nuestro artículo. Estén atentos para más artículos como estos.

Artículos recomendados

Esta es una guía de Spark Streaming. Aquí discutimos la introducción a Spark Streaming, cómo funciona junto con Ventajas y Ejemplos. También puede consultar nuestros otros artículos relacionados:

  1. ¿Qué es Hadoop Streaming?
  2. Comandos de chispa
  3. Tutoriales sobre cómo instalar Spark
  4. Diferencia entre Hadoop y Spark
  5. Spark DataFrame | Ventajas
  6. Los 6 componentes principales de Spark