Qu’est-ce qu’Apache Flink® dans Azure HDInsight sur AKS ? (Préversion)

Important

Cette fonctionnalité est disponible actuellement en mode Aperçu. L’Avenant aux conditions d’utilisation pour les préversions de Microsoft Azure contient des conditions légales en plus qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou pas encore en disponibilité générale. Pour plus d’informations sur cette préversion spécifique, consultez informations sur Azure HDInsight sur AKS en préversion. Pour toute question ou tout envoi de suggestions sur la fonctionnalité, veuillez soumettre une demande sur AskHDInsight avec les détails et suivez-nous pour plus de mises à jour sur la Communauté Azure HDInsight.

Apache Flink est une infrastructure et un moteur de traitement distribué pour les calculs avec état sur des flux de données non liés et limités. Flink a été conçu pour s’exécuter dans tous les environnements de cluster courants, effectuer des calculs et des applications de diffusion en continu avec état à la vitesse de la mémoire et à toute échelle. Les applications sont parallélisées dans des milliers de tâches qui sont distribuées et exécutées simultanément dans un cluster. Par conséquent, une application peut utiliser des quantités illimitées de processeurs virtuels, de mémoire principale, de disque et d’E/S réseau. En outre, Flink gère facilement l’état d’applications volumineuses. Son algorithme de point de contrôle asynchrone et incrémentiel garantit une influence minimale sur les latences de traitement tout en garantissant la cohérence de l’état une seule fois.

Apache Flink est un moteur d’analytique massivement évolutif pour le traitement de flux.

Voici quelques-unes des principales fonctionnalités proposées par Flink :

  • Opérations sur des flux limités et non liés
  • Performances en mémoire
  • Possibilité de calculs de diffusion en continu et par lots
  • Opérations de faible latence, à débit élevé
  • Traitement une seule fois
  • Haute disponibilité
  • État et tolérance de panne
  • Entièrement compatible avec l’écosystème Hadoop
  • API SQL unifiées pour les flux et les lots

Diagramme architectural Flink.

Apache Flink est un excellent choix pour développer et exécuter de nombreux types d’applications différents en raison de son ensemble de fonctionnalités étendues. Les fonctionnalités de Flink comprennent la prise en charge du traitement de flux et de lots, une gestion sophistiquée des états, une sémantique de traitement événementiel et des garanties de cohérence de l’état une seule fois. Flink n’a pas de point de défaillance unique. Flink a prouvé qu’il pouvait s’adapter à des milliers de cœurs et à des téraoctets d’état d’application, qu’il offrait un débit élevé et une faible latence, et qu’il alimentait certaines des applications de traitement de flux les plus exigeantes au monde.

  • Détection des fraudes : Flink peut être utilisé pour détecter des transactions frauduleuses ou des activités en temps réel en appliquant des règles complexes et des modèles Machine Learning sur la diffusion en continu de données.
  • Détection d’anomalies : Flink peut être utilisé pour identifier les valeurs hors norme ou les modèles anormaux dans les données de diffusion en continu, telles que les lectures de capteur, le trafic réseau ou le comportement de l’utilisateur.
  • Alerte basée sur une règle : Flink peut être utilisé pour déclencher des alertes ou des notifications basées sur des conditions ou des seuils prédéfinis sur les données de diffusion en continu, telles que la température, la pression ou les cours des actions.
  • Analyse des processus métier : Flink peut être utilisé pour suivre et analyser l’état et les performances des processus métier ou des flux de travail en temps réel, tels que le traitement des commandes, la livraison ou le service client.
  • Application web (réseau social) : Flink peut être utilisé pour alimenter les applications web qui nécessitent un traitement en temps réel des données générées par l’utilisateur, telles que des messages, des j’aime, des commentaires ou des recommandations.

En savoir plus sur les cas d’usage courants décrits dans Cas d’usage Apache Flink

Les clusters Apache Flink dans HDInsight sur AKS sont un service complètement managé. Voici la liste des avantages de la création d’un cluster Flink dans HDInsight sur AKS.

Fonctionnalité Description
Facilité de création La création d’un cluster Flink dans HDInsight prend quelques minutes en utilisant le Portail Azure, Azure PowerShell ou le Kit de développement logiciel (SDK). Consultez Démarrage d’un cluster Apache Flink dans HDInsight sur AKS.
Simplicité d’utilisation Les clusters Flink dans HDInsight sur AKS incluent la gestion de la configuration basée sur le portail et la mise à l’échelle. Outre ces opérations avec l’API de gestion des travaux, vous utilisez l’API REST ou le Portail Azure pour la gestion des travaux.
API REST Les clusters Flink dans HDInsight sur AKS incluent l’API de gestion des travaux, une méthode de soumission des travaux basée sur l’API REST pour envoyer à distance et monitorer des travaux sur le Portail Azure.
Type de déploiement Flink peut exécuter des applications en mode Session ou en mode Application. Actuellement, HDInsight sur AKS prend uniquement en charge les clusters de session. Vous pouvez exécuter plusieurs travaux Flink sur un cluster de session. Le mode Application se trouve sur la feuille de route pour HDInsight sur les clusters AKS
Prise en charge pour metastore Les clusters Flink dans HDInsight sur AKS peuvent prendre en charge des catalogues avec un metastore Hive dans divers formats de fichier ouvert avec des points de contrôle dans Azure Data Lake Storage Gen2.
Prise en charge de Stockage Azure Les clusters Flink dans HDInsight peuvent utiliser Azure Data Lake Storage Gen2 comme récepteur de fichier. Pour plus d’informations sur Data Lake Storage Gen2, consultez Azure Data Lake Storage Gen2.
Intégration aux services Azure Le cluster Flink dans HDInsight sur AKS est fourni avec une intégration dans Kafka, ainsi qu’avec Azure Event Hubs et Azure HDInsight. Vous pouvez générer des applications de diffusion en continu en utilisant Event Hubs ou HDInsight.
Adaptabilité HDInsight sur AKS vous permet de mettre à l’échelle les nœuds de cluster Flink basé sur la planification avec la fonctionnalité de mise à l’échelle automatique. Consultez Mise à l’échelle automatique d’Azure HDInsight sur des clusters AKS.
Back-end d’état HDInsight sur AKS utilise RocksDB comme back-end d’état par défaut. RocksDB est un magasin de clés-valeur persistant incorporable pour un stockage rapide.
Points de contrôle Les points de contrôle sont activés dans HDInsight sur des clusters AKS par défaut. Les paramètres par défaut sur HDInsight sur AKS conservent les cinq derniers points de contrôle dans le stockage persistant. En cas d’échec de votre travail, il peut être redémarré à partir du dernier point de contrôle.
Points de contrôle incrémentiels RocksDB prend en charge les points de contrôle incrémentiels. Nous encourageons l’utilisation de points de contrôle incrémentiels pour un état volumineux. Vous devez activer cette fonctionnalité manuellement. La définition d’une valeur par défaut dans votre flink-conf.yaml: state.backend.incremental: true active les points de contrôle incrémentiels, sauf si l’application remplace ce paramètre dans le code. Cette instruction est vraie par défaut. Vous pouvez également configurer cette valeur directement dans le code (pour remplacer la configuration par défaut) EmbeddedRocksDBStateBackend` backend = new `EmbeddedRocksDBStateBackend(true);. Par défaut, nous conservons les cinq derniers points de contrôle dans le dir de point de contrôle configuré. Cette valeur peut être modifiée en changeant la configuration sur la section de gestion de la configuration state.checkpoints.num-retained: 5

Les clusters Apache Flink dans HDInsight sur AKS incluent les composants suivants qui sont disponibles sur les clusters par défaut.

Consultez la feuille de route relative aux nouveautés à venir !

Flink planifie des travaux à l’aide de trois composants distribués, Gestionnaire de travaux, Gestionnaire de tâches et Client de travail, qui sont définis dans un modèle Meneur-Suiveur.

Travail Flink: un travail ou un programme Flink se compose de plusieurs tâches. Les tâches sont l’unité de base de l’exécution dans Flink. Chaque tâche Flink a plusieurs instances en fonction du niveau de parallélisme et chaque instance est exécutée sur un TaskManager.

Gestionnaire de travaux : le gestionnaire de travaux agit en tant que planificateur et planifie les tâches sur les gestionnaires de tâches.

Gestionnaire de tâches : les gestionnaires de tâches sont fournis avec un ou plusieurs emplacements pour exécuter des tâches en parallèle.

Client de travail : le client de travail communique avec le gestionnaire de travaux pour envoyer des travaux Flink

Interface utilisateur web Flink: Flink propose une interface utilisateur web pour inspecter, surveiller et déboguer des applications en cours d’exécution.

Diagramme de processus Flink montrant comment le travail, le gestionnaire de travaux, le gestionnaire de tâches et le client de travail fonctionnent ensemble.

Référence