Spark Streaming - Guide complet de Spark Streaming

Table des matières:

Anonim

Introduction à Spark Streaming

Apache Spark Streaming est l'un des principaux composants essentiels d'Apache Spark qui est le traitement en temps réel de l'utilitaire de données qui est utilisé pour diffuser les données en temps réel, contrairement aux travaux par lots Hadoop traditionnels qui étaient utilisés pour exécuter des travaux par lots à la place du streaming de données en temps réel. Il utilise la capacité de planification rapide de Spark Core afin d'effectuer des analyses de diffusion d'étincelles rapides qui impliquent essentiellement l'ingestion des données sous forme de micro et mini-lots pour effectuer les transformations RDD sur ces ensembles de données dans une période de fenêtre particulière. Le streaming Apache Spark est censé consommer de nombreux amonts, complétant ainsi le pipeline tels que ceux comme Apache Kafka, Flume, RabbitMQ, ZeroMQ, Kinesis, les sockets TCP / IP, Twitter, etc. Les jeux de données structurés disponibles dans Spark 2. Les versions x + sont utilisées pour le streaming structuré.

Comment fonctionne Spark Streaming?

  • Dans le cas de Spark Streaming, les flux de données sont divisés en lots fixes également appelés DStreams qui est en interne une séquence de type fixe du nombre de RDD. Les RDD sont donc traités en utilisant l'API Spark et les résultats renvoyés sont donc par lots. Les opérations de flux discrétisées qui sont des transformations avec état ou sans état consistent également avec elles des opérations de sortie, des opérations d'entrée DStream et également des récepteurs. Ces Dstreams sont le niveau d'abstraction de base fourni par le streaming Apache Spark qui est un flux continu des RDD Spark.
  • Il fournit également les capacités de tolérance aux pannes à utiliser pour les Dstreams assez similaires aux RDD tant que la copie des données est disponible et donc n'importe quel état peut être recalculé ou ramené à l'état d'origine en utilisant le graphique de lignée de Spark sur le ensemble de RDD. Le point à considérer ici est que les Dstreams sont utilisés pour traduire les opérations de base sur leur ensemble sous-jacent de RDD. Ces transformations basées sur RDD sont effectuées et calculées par le moteur Spark. Les opérations Dstream sont utilisées pour fournir le niveau de base des détails et donner au développeur un niveau élevé d'API à des fins de développement.

Avantages du Spark Streaming

Il y a plusieurs raisons pour lesquelles l'utilisation du streaming Spark est un avantage supplémentaire. Nous allons en discuter dans notre article ici.

  1. Unification des flux de travail, des lots et des charges de travail interactives: les ensembles de données peuvent être facilement intégrés et utilisés avec n'importe laquelle des charges de travail qui n'ont jamais été une tâche facile à effectuer dans des systèmes continus et, par conséquent, cela sert de moteur unique.
  2. Niveau d'analyse avancé avec apprentissage automatique et requêtes SQL: lorsque vous travaillez sur des charges de travail complexes, il nécessite toujours l'utilisation de l'apprentissage continu et également avec les modèles de données mis à jour. La meilleure partie de ce composant de Spark est qu'il s'intègre facilement avec MLib ou toute autre bibliothèque d'apprentissage machine dédiée.
  3. Échec rapide et récupération pour retardateur: la récupération après défaillance et la tolérance aux pannes sont l'une des principales fonctionnalités de base disponibles dans le streaming Spark.
  4. Équilibrage de charge: Les goulots d'étranglement sont souvent causés entre les systèmes en raison de charges et d'équilibres inégaux qui sont effectués et il devient donc tout à fait nécessaire d'équilibrer la charge uniformément, qui est automatiquement gérée par ce composant de Spark.
  5. Performances: En raison de sa technique de calcul en mémoire qui utilise davantage la mémoire interne que le disque dur externe, les performances de Spark sont très bonnes et efficaces par rapport à d'autres systèmes Hadoop.

Opérations de streaming Spark

1) Opérations de transformation sur le streaming Spark: De la même manière que les données sont transformées à partir de l'ensemble de RDD, ici aussi les données sont transformées à partir de DStreams et il offre de nombreuses transformations qui sont disponibles sur les RDD Spark normaux. Certains d'entre eux sont:

  • Map (): Ceci est utilisé pour renvoyer une nouvelle forme de Dstream lorsque chaque élément est passé par une fonction.
    Par exemple, data.map (line => (line, line.count))
  • flatMap (): Celui-ci est similaire à la carte mais chaque élément est mappé à 0 ou plusieurs unités mappées.
    Exemple, data.flatMap (lines => lines.split (""))
  • filter (): Celui-ci est utilisé pour renvoyer un nouvel ensemble de Dstream en renvoyant les enregistrements qui sont filtrés pour notre usage.
    Exemple, filtre (valeur => valeur == "étincelle")
  • Union (): Il est utilisé pour renvoyer un nouvel ensemble de Dstream qui se compose des données combinées des Dstream d'entrée et d'autres Dstream.
    Exemple, Dstream1.union (Dstream2) .union (Dstream3)

2) Mettre à jour l'état par opération clé

Cela vous permet de conserver un état arbitraire même lorsqu'il est constamment mis à jour avec une nouvelle information. Vous devrez définir l'état qui peut être de type arbitraire et définir la fonction de mise à jour d'état, ce qui signifie spécifier l'état en utilisant l'état précédent et également utiliser de nouvelles valeurs à partir d'un flux d'entrée. Dans chaque système de traitement par lots, une étincelle appliquera la même fonction de mise à jour d'état pour toutes les clés courantes.

Exemple:

fonction de mise à jour def (NV, RC):

si RC est Aucun:

RC = 0

return sum (NV, RC) #Nv est de nouvelles valeurs et RC exécute count

Conclusion

Le streaming Spark est l'un des systèmes les plus efficaces pour construire le pipeline de type de streaming réel et est donc utilisé pour surmonter tous les problèmes rencontrés en utilisant des systèmes et des méthodes traditionnels. Par conséquent, tous les développeurs qui apprennent à se frayer un chemin dans le composant de streaming d'étincelles ont marché sur le point unique le plus à droite d'un cadre qui peut être utilisé pour répondre à tous les besoins de développement. Par conséquent, nous pouvons affirmer avec certitude que son utilisation améliore la productivité et les performances des projets et des entreprises qui tentent ou souhaitent utiliser l'écosystème du Big Data. J'espère que vous avez aimé notre article. Restez à l'écoute pour plus d'articles comme ceux-ci.

Articles recommandés

Ceci est un guide de Spark Streaming. Nous discutons ici de l'introduction à Spark Streaming, de son fonctionnement ainsi que des avantages et des exemples. Vous pouvez également consulter nos autres articles connexes -

  1. Qu'est-ce que le streaming Hadoop?
  2. Commandes Spark
  3. Tutoriels sur la façon d'installer Spark
  4. Différence entre Hadoop et Spark
  5. Spark DataFrame | Les avantages
  6. 6 principaux composants de Spark