[Spark streaming] (a) la structure et le principe de fonctionnement

I. introduction

Spark streaming est un système à haut débit, le flux de données en temps réel de tolérance aux pannes peut être une variété de sources de données (par exemple, Kafka, Flume, Twitter, zéro et sockets TCP) similaires Carte, et moins comme Rejoindre opération complexe et enregistrer les résultats à un système de fichiers externe, base de données ou de l'application de tableaux de bord en temps réel.

Il est un cadre est une extension API de base Spark, peut atteindre un débit élevé, à temps réel tolérant aux pannes des données en continu mécanisme cours de traitement.

Il prend en charge plusieurs sources de données pour obtenir des données:

Insérer ici l'image Description
Spark Diffusion en recevant des données d'entrée en temps réel à partir de diverses sources Kafka, canal, HDFS etc., après le traitement, stockée dans la structure de traitement HDFS,

DataBase et d'autres endroits.

Tableaux de bord : interface de contrôle graphique, Spark en continu peuvent être émis sur la première page de la surveillance.

En second lieu, l'architecture de traitement de flux

Insérer ici l'image Description

三, Architecture Micro-Lot

Spark traitement des données en vrac (données hors ligne), Spark Le streaming en fait pas être traités comme Strom en tant que données de traitement, flux de données externe , mais après l' amarrage segmentation par le temps, lot un fichier par une segmentation et une logique de traitement d'allumage est la même.

Spark en streaming reçu en temps réel des données en continu, selon un certain intervalle de temps, le fractionnement des données, Spark moteur du moteur, les résultats des lots finalement obtenus.

Insérer ici l'image Description

DSTREAM : en continu fournit une représentation du flux de données continu d'étincelles, est désigné en tant que courant discret DSTREAM très abstraite.

Si l'afflux de données externes, conformément à l'une des sections de minute, à l'intérieur de toutes les données d'une minute est continue (flux continu de données), et une minute et une minute, il est sections indépendantes (flux discret).

  • DSTREAM une étincelle de type de données spécifiques en streaming

  • Spark 2.3.1 Démarrer retard de 1 milliseconde (environ 100 millisecondes avant)

  • Chaque micro-lot est un RDD - peut partager le code entre lots et le streaming

En quatrième lieu, le principe de fonctionnement

4.1 Contexte streaming

Contexte streaming consomme un flux de données dans Spark.

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()

Insérer ici l'image Description

  • JVM ne peut activer un StreamingContext.
  • StreamingContext ne redémarrera pas à l'arrêt, mais peut être recréée.

4,2 DSTREAM

DSTREAM par une série de RDD de composition du courant discrètes successives , chaque RDD contient des données déterminées dans l'intervalle de temps:

Insérer ici l'image Description
Spark de RDD peut être compris que les dimensions spatiales, la DSTREAM RDD entend la dimension spatiale a ajouté une dimension temporelle .

Pour figure par exemple, les flux de données est divisé en quatre tranches découpées dans la logique de traitement interne est le même, mais dans différentes échelles de temps.

# 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 et Spark différence en streaming:

Spark -> EET: une action de transformation + EET DAG

Diffusion de la Spark -> DSTREAM: sortie de la transformation (il ne permet pas l' activation des données intermédiaires, des données d'entrée doit veiller à ce que la sortie) + DStreamGraph

Tout des opérations sont converties en DSTREAM sous-tendant l'opération de RDD (par l'opérateur):

Insérer ici l'image Description
Résumé: La persistance continue des données, le traitement discret et par lots.

  • La persistance: les données reçues sont stockées temporairement.

Pourquoi la persistance: faire la tolérance aux pannes, lorsque les données sur le mauvais, parce qu'il n'y a pas de calcul, les données doivent être de retour à la source, le stockage temporaire des données peuvent être restaurées.

  • Discrétisation: tranche de temps, l'unité de traitement est formée.

traitement Fragment: traitement par lots.

4.3 DStreams et récepteurs d'entrée

  • DStreams entrée représentent le flux de données d'entrée reçues à partir de sources de streaming.
  • Chaque DSTREAM d'entrée (sauf pour le flux de fichiers) reçoit objet côté associé au récepteur, et la réception de données d'objet reçues à partir de la source de traitement est stocké dans la mémoire Spark.
  • Vous pouvez créer plusieurs DStreams d'entrée en même StreamingContext

Insérer ici l'image Description

Cinq, opération DSTREAM

1.1 opération de commutation normale : carte, flatMap, fltre, union , comte, joignez - vous , etc.

1.2 transformer (func) Fonctionnement: Sur DSTREAM permet à toute fonction d'application RDD à RDD

1.3 Mise en oeuvre updateStateByKey:

1,4 fenêtre de commande de commutation: permet de convertir, comme countByWindow, reduceByKeyAndWindow autre par une fenêtre glissante de données, (intervalles de traitement par lots, et l'espacement d'intervalle de fenêtre glissante)

2. Opération de sortie : DSTREAM permet aux données est sortie au système externe, comme une base de données ou un système de fichiers, avec une impression (), foreachRDD (Func) , saveAsTextFiles (), saveAsHadoopFiles () , etc.

3. Persistance : La méthode du flux de données persister () stocké dans la mémoire, ce qui permet le calcul itératif efficace

Six, Spark en streaming architecture

Insérer ici l'image Description
Maître : relation Record-dépendante ouparenté entre DSTREAM, et est responsable deplanification des tâches pour générer un nouveau RDD

Le travailleur : recevoirdonnées du réseau,stocker eteffectuercalcul RDD

Client : responsable des données versé pour Sparkstreaming

Planification: déclenchée par le temps.

Maître : maintient DSTREAM Graphique cette image. (Non au niveau du noeud, sont de niveau tâche)

Travailleur : à effectuer conformément au schéma.

Travailleur qui a un rôle majeur: récepteur, recevant flux de données externe, le flux de données est ensuite passée à travers l'ensemble récepteur Diffusion Spark intérieur (récepteur emballé dans le format de flux de données final peut gérer Spark Streaming)

Récepteur : Le récepteur reçoitdifférentes sources de données, acquisition ciblée, Spark streaming fournit également un procédé différents récepteurs répartis sur différents noeuds, chaque récepteur est spécifique, chaque noeud reçoit danscadre de la entrée. ,récepteur n'accepte pas le calcul complet immédiatement, avant qu'il ne soit stocké dans une mémoire tampon interne. Le streaming est parce queselon le découpagetranches de constante de temps, il est nécessaire d'attendre, une foisle temporisateur expire, le tampon sera conversiondonnées en blocsdonnéesblocs (tampons d'action:intervalles définis parutilisateurcoupe), les données bloc dans une fileattente pour allerintérieur, puis gestionnaireblocs bloc de données de la fileattente sur pour convertir les blocs de données en blocs de données d'une étincelle peut gérer.

Pourquoi un processus?

conteneur -> Executor est un processus

Spark en streaming la soumission du travail:

• Entrée réseau Tracker: suivi de chaque réseau a reçu des données, et des cartes à l'entrée appropriée DSTREAM

• Planificateur de tâches: visite périodique DSTREAM graphique et génère Job Spark, Job Manager pour l'exécuter

• Job Manager: Obtient la file d'attente, et effectuer des tâches Spark

Spark fenêtre en streaming opération:

• Spark fournit un ensemble de fonctionnement de la fenêtre, l'analyse statistique des données de mise à jour incrémentale à grande échelle par le biais d'une technique de fenêtre glissante

• Opération Fenêtre: Calendrier de traitement de données certaine période de temps

Insérer ici l'image Description

Besoin de spécifier la fenêtre d'opération sur la base de deux paramètres :

  • La longueur totale de la fenêtre (longueur de la fenêtre): Vous voulez calculer combien de temps les données

  • intervalle de temps de glissement (intervalle de diapositives): Depuis combien de temps vous allez mettre à jour chaque fois que

Seven, faire ce que Spark en streaming

Pour l'instant SparkStreaming prend en charge les trois principaux scénarios d'activité suivants

1, fonctionnement sans état: uniquement concerné des données en temps réel dans le lot en cours, par exemple:

  • Opportunités rubriques, classification http fin de demande -> -> kafka Spark en streaming -> http fin de demande Carte -> Résultats de réponse
  • accès Nginx journaux collection de bibliothèque réseau, flume-> kafka -> Spark en streaming -> ruche / hdfs
  • Synchronisation des données, les données de la station maître par la bibliothèque réseau "Master" -> kafka-> Spark en streaming -> ruche / hdfs

2, opération stateful: Lorsque DSTREAM opération stateful, les données avant la nécessité de compter sur de petits lots de données en plus du courant nouvelle génération, mais aussi besoin d'utiliser toutes les données historiques déjà produites. les nouvelles données avec les données historiques fusionnées en une nappe d'eau de la totalité des données telles que:

  • Statistiques en temps réel visites bibliothèque total net chaque site
  • Total des affichages statistiques en temps réel pour chaque produits de bibliothèque réseau, le volume des transactions, le chiffre d'affaires

3, la fenêtre de commande: la synchronisation des données dans un délai déterminé de la plage de DSTREAM de temps de fonctionnement, par exemple:

  • maître bibliothèque réseau d'accès malveillants, les reptiles, les statistiques toutes les 10 minutes dans les 30 minutes des utilisateurs les plus visités
Publié 345 articles originaux · louange gagné 456 · vues 270 000 +

Je suppose que tu aimes

Origine blog.csdn.net/BeiisBei/article/details/105053482
conseillé
Classement