[Spark Streaming] estructura (a) y principio de funcionamiento

I. Introducción

Spark Streaming Streaming es un alto rendimiento del sistema, el flujo de datos en tiempo real tolerante a fallos puede ser una variedad de fuentes de datos (enchufes por ejemplo, Kafka, saetín, Twitter, cero y TCP) similares Mapa, reducir y Unirte como operación compleja, y guardar los resultados en un sistema de archivos externo, base de datos o aplicación de cuadros de mando en tiempo real.

Es un marco es una API núcleo Spark extensión, se puede lograr un alto rendimiento, los datos de streaming en tiempo real tolerante a fallos procesando mecanismo.

Es compatible con múltiples fuentes de datos para obtener los datos:

Aquí Insertar imagen Descripción
Spark Streaming recibir datos de entrada en tiempo real de varias fuentes Kafka, saetín, HDFS etc., después de procesar, almacenar en los HDFS procesamiento estructura,

Base de datos y otros lugares.

Cuadros de mando : interfaz gráfica de monitoreo, Spark Streaming se pueden emitir en la primera página de la supervisión.

En segundo lugar, la arquitectura de procesamiento de flujo

Aquí Insertar imagen Descripción

三, Micro-Batch Arquitectura

Chispa de procesamiento de datos en bloque (datos sin conexión), la chispa Streaming en realidad no se trata como una Strom como el procesamiento de datos, flujo de datos externa, pero después de la llegada de segmentación por el tiempo, por lotes de archivos de uno en uno segmentación , y la lógica de procesamiento Spark es el mismo.

Transmisión de chispa recibida en tiempo real de transmisión de datos, de acuerdo con un cierto intervalo de tiempo, la división de los datos, a la chispa del motor del motor, los resultados obtenidos por lotes finalmente.

Aquí Insertar imagen Descripción

DSTREAM : Streaming proporciona una representación del flujo de datos continuo Spark, se conoce como un DSTREAM corriente discreta altamente abstracto.

Si la afluencia de datos externos, de acuerdo con las secciones de un minuto, en el interior de todos los datos de un minuto es continuo (flujo continuo de datos), y un minuto y un minuto que es secciones independientes (corriente discreta).

  • DSTREAM un Spark tipo de datos específico Streaming

  • Spark 2.3.1 Start 1 retardo de milisegundos (unos 100 milisegundos antes)

  • Cada micro-lotes es un RDD - puede compartir código entre lote y el streaming

En cuarto lugar, el principio de funcionamiento

4.1 Transmisión de Contexto

Streaming Contexto consume una corriente de datos de chispa.

from pyspark import SparkContext
from pyspark.streaming import StreamingContext

# Create a local StreamingContext with two working threads and a batch interval of 2 seconds
# local[2] – spark executor runs on 2 cores.

sc = StreamingContext( SparkContext("local[2]", "NetWordCount"), 2 )

# ….
sc.start()

Aquí Insertar imagen Descripción

  • JVM sólo se puede activar una StreamingContext.
  • StreamingContext no se reiniciará después de la parada, pero puede ser re-creado.

4.2 DSTREAM

DSTREAM por una serie de sucesivas discreta composición de la corriente RDD , cada RDD contiene datos determinados en el intervalo de tiempo:

Aquí Insertar imagen Descripción
Spark de RDD puede entenderse como dimensiones espaciales, DSTREAM el RDD entiende que en la dimensión espacial ha añadido una dimensión de tiempo .

Por ejemplo figura, el flujo de datos se divide en cuatro rebanadas cortadas en la lógica de procesamiento interno es lo mismo, pero en diferentes escalas de tiempo.

# Create a local StreamingContext with two working threads and a batch interval of 2 seconds

sc = StreamingContext( SparkContext("local[2]", "NetWordCount"), 2 )
lines = ssc.socketTextStream("localhost", 3333) # Create a DStream
words = lines.flatMap(lambda line: line.split(" ")) # Split each line into words
pairs = words.map(lambda word: (word, 1)) # Count each word in each batch
wordCounts = pairs.reduceByKey(lambda x, y: x + y)

ssc.start() # Start the computation
ssc.awaitTermination() # Wait for the computation to terminate

Spark y Spark Streaming diferencia:

Spark -> ota: acción de transformación + ota DAG

Streaming el Spark -> DSTREAM: salida de la transformación (que no permite la activación de los datos intermedios, los datos de entrada deben asegurar que la salida) + DStreamGraph

Cualquiera de las operaciones se convierten en DSTREAM que subyace en la operación de RDD (a través del operador):

Aquí Insertar imagen Descripción
Resumen: La persistencia continua de datos, procesamiento discreto y por lotes.

  • Persistencia: los datos recibidos se almacenan temporalmente.

¿Por qué la persistencia: hacer tolerancia a fallos, cuando los datos fuera del mal, porque no hay ningún cálculo, los datos tienen que estar de vuelta en la fuente, el almacenamiento temporal de los datos puede ser restaurada.

  • Discretización: segmento de tiempo, se forma la unidad de procesamiento.

procesamiento Fragmento: proceso por lotes.

4.3 DStreams de entrada y Receptores

  • DStreams de entrada representan el flujo de datos de entrada recibidos de fuentes de streaming.
  • Cada DSTREAM de entrada (a excepción de la secuencia de archivo) recibe objeto secundario asociado con el receptor, y los datos de objeto de recibir recibida de la fuente de procesamiento se almacena en el Spark memoria.
  • Se pueden crear múltiples DStreams de entrada al mismo StreamingContext

Aquí Insertar imagen Descripción

Cinco, operación DSTREAM

1.1 normal de operación de conmutación : mapa, flatMap, fltros, unión , el recuento, se unen , etc.

1,2 transformar (func) Operación: En DSTREAM permite que cualquier función de aplicación RDD-a-RDD

1.3 operación updateStateByKey:

ventana de operación 1.4 de conmutación: le permite convertir, como countByWindow, reduceByKeyAndWindow sí mediante una ventana deslizante de datos, (intervalos lotes y ventana deslizante espaciamiento intervalo)

2. Operación de salida : DSTREAM permite que los datos se emite al sistema externo, tal como un sistema de base de datos o archivo, con una impresión (), foreachRDD (func) , saveAsTextFiles (), saveAsHadoopFiles () , etc.

3. Persistencia : El método persist () de los datos del flujo almacenado en la memoria, lo que permite el cálculo iterativo eficiente

Seis, Spark Transmisión de Arquitectura

Aquí Insertar imagen Descripción
Maestro : relación de registros dependientes o parentesco entre DSTREAM, y es responsable de la programación de tareas para generar un nuevo RDD

El trabajador : la recepción de datos de la red, almacenar y realizar el cálculo RDD

Cliente : responsable de los datos vierte en Streaming Spark

Programación: provocada por el tiempo.

Maestro : Gráfico mantiene DSTREAM esta imagen. (No es el nivel de nodo, son tarea de nivel)

Trabajador : para llevar a cabo de acuerdo con el diagrama.

Trabajador que tiene un papel importante: receptor, que recibe flujo de datos externo, se pasa entonces a la corriente de datos a través de toda la chispa dentro Streaming receptor (receptor empaquetado en el formato final flujo de datos puede manejar Spark streaming)

Receptor : El receptor recibe diferentes fuentes de datos, la adquisición específica, Spark Streaming proporciona también un procedimiento diferentes receptores distribuidos en diferentes nodos, cada receptor es un específico, cada nodo recibe como parte de la de entrada. , El receptor no acepta el cálculo completo de inmediato, antes de que se almacena en un buffer interno. Streaming es porque de acuerdo a la constante de segmentación de tiempo, es necesario esperar, una vez que el temporizador expira, el tampón será la conversión de datos en bloques de datos de bloque (tampón de acción: intervalos definidos por el usuario de corte), entonces los datos bloque en una cola para entrar, entonces el bloque bloque de datos de gestor de la cola a cabo para convertir los bloques de datos en bloques de datos de una chispa puede manejar.

¿Por qué es un proceso?

contenedor -> Ejecutor es un proceso

Spark Streaming envío de trabajos:

• Entrada de red Tracker: seguimiento de cada red reciben los datos, y lo asigna a la entrada adecuada DSTREAM

• Programador de trabajos: visita periódica DSTREAM Gráfico y genera la chispa de empleo, Job Manager para ejecutarlo

• Gestor de tareas: Obtiene la cola de trabajos, y realizar tareas de chispa

Spark funcionamiento de la ventana Streaming:

• Spark proporciona un conjunto de accionamiento de las ventanillas, el análisis estadístico de datos a gran escala la actualización incremental a través de una técnica de ventana deslizante

• Ventana de Operación: El tiempo de procesamiento de datos determinado período de tiempo

Aquí Insertar imagen Descripción

Cualquier necesidad de especificar la ventana de operación dos parámetros basados en :

  • La longitud total de la ventana (ventana de longitud): Se desea calcular cuánto tiempo los datos

  • Deslizamiento intervalo de tiempo (intervalo de diapositivas): ¿Cuánto tiempo va a ir a actualizar cada vez

Siete, hacer lo que Spark Streaming

Por ahora SparkStreaming soporta los siguientes tres escenarios principales de negocio

1, el funcionamiento sin estado: solamente se trate con datos en tiempo real en el lote actual, por ejemplo:

  • Oportunidades de partidas, la clasificación final petición HTTP -> -> kafka Spark streaming -> http petición finales mapa -> Resultados de respuesta
  • Acceso Nginx registra colección de la biblioteca de red, flume-> kafka -> Spark Streaming -> colmena / hdfs
  • La sincronización de datos, los datos de la estación maestra a través de la biblioteca de red "Maestro" -> kafka-> Spark Streaming -> colmena / hdfs

2, la operación de estado: Cuando DSTREAM operación de estado, los datos antes de la necesidad de confiar en pequeños lotes de datos, además de la nueva generación actual, pero también es necesario utilizar todos los datos históricos generados anteriormente. datos recientemente obtenidos con los datos históricos se fundieron en una mesa de agua de la cantidad total de datos, tales como:

  • Estadísticas en tiempo real visitas a la biblioteca totales netos cada sitio
  • Vistas totales de estadísticas en tiempo real para cada uno de los productos básicos de la biblioteca de red, el volumen de operaciones, la facturación

3, la ventana de operación: la sincronización de los datos dentro de un período especificado de gama DSTREAM momento de la operación, por ejemplo:

  • el acceso malicioso principal biblioteca de red, los reptiles, las estadísticas cada 10 minutos a 30 minutos de la mayoría de los usuarios visitados
Publicados 345 artículos originales · ganado elogios 456 · vistas 270 000 +

Supongo que te gusta

Origin blog.csdn.net/BeiisBei/article/details/105053482
Recomendado
Clasificación