Apache Flink - Architecture

Apache Flink fonctionne sur l'architecture Kappa. L'architecture Kappa a un seul processeur - flux, qui traite toutes les entrées comme des flux et le moteur de streaming traite les données en temps réel. Les données par lots dans l'architecture kappa sont un cas particulier de streaming.

Le diagramme suivant montre le Apache Flink Architecture.

L'idée clé de l'architecture Kappa est de gérer à la fois les données par lots et en temps réel via un seul moteur de traitement de flux.

La plupart des frameworks Big Data fonctionnent sur l'architecture Lambda, qui dispose de processeurs séparés pour les données par lots et en continu. Dans l'architecture Lambda, vous disposez de bases de code distinctes pour les vues par lots et par flux. Pour interroger et obtenir le résultat, les bases de code doivent être fusionnées. Ne pas maintenir des bases de code / vues séparées et les fusionner est une douleur, mais l'architecture Kappa résout ce problème car elle n'a qu'une seule vue - en temps réel, donc la fusion de la base de code n'est pas nécessaire.

Cela ne signifie pas que l'architecture Kappa remplace l'architecture Lambda, cela dépend complètement du cas d'utilisation et de l'application qui décide quelle architecture serait préférable.

Le diagramme suivant illustre l'architecture d'exécution des tâches Apache Flink.

Programme

C'est un morceau de code que vous exécutez sur le cluster Flink.

Client

Il est chargé de prendre le code (programme) et de construire le graphique de flux de données de travail, puis de le transmettre à JobManager. Il récupère également les résultats du travail.

JobManager

Après avoir reçu le graphique Job Dataflow du client, il est responsable de la création du graphique d'exécution. Il attribue le travail aux TaskManagers du cluster et supervise l'exécution du travail.

Gestionnaire des tâches

Il est responsable de l'exécution de toutes les tâches qui ont été assignées par JobManager. Tous les TaskManagers exécutent les tâches dans leurs emplacements séparés dans un parallélisme spécifié. Il est responsable d'envoyer l'état des tâches à JobManager.

Caractéristiques d'Apache Flink

Les fonctionnalités d'Apache Flink sont les suivantes -

  • Il dispose d'un processeur de streaming, qui peut exécuter des programmes par lots et par flux.

  • Il peut traiter les données à une vitesse fulgurante.

  • API disponibles en Java, Scala et Python.

  • Fournit des API pour toutes les opérations courantes, ce qui est très facile à utiliser pour les programmeurs.

  • Traite les données avec une faible latence (nanosecondes) et un débit élevé.

  • Son tolérant aux fautes. Si un nœud, une application ou un matériel tombe en panne, cela n'affecte pas le cluster.

  • Peut facilement s'intégrer à Apache Hadoop, Apache MapReduce, Apache Spark, HBase et d'autres outils Big Data.

  • La gestion en mémoire peut être personnalisée pour un meilleur calcul.

  • Il est hautement évolutif et peut évoluer jusqu'à des milliers de nœuds dans un cluster.

  • Le fenêtrage est très flexible dans Apache Flink.

  • Fournit des bibliothèques de traitement graphique, d'apprentissage automatique et de traitement d'événements complexes.