Réglage automatique des configurations de ressources pour les systèmes de traitement de données en continu à l'aide de l'apprentissage automatique

Réglage automatique des configurations de ressources pour les systèmes de traitement de données en continu à l’aide de l’apprentissage automatique

Vue d’ensemble de l’architecture Apache Flink. Crédit: Informatique intelligente (2022). DOI : 10.34133/2022/9820424

Les données peuvent être assimilées à un courant d’eau lorsqu’une grande quantité de données est générée en continu. Une variété de données, y compris des applications, des appareils en réseau, des fichiers journaux de serveur, diverses activités en ligne et des données basées sur la localisation, peuvent former un flux continu. Nous appelons une telle forme de données de flux de traitement de données.

Dans le streaming de données, différents types de sources de données peuvent être collectées, gérées, stockées, analysées en temps réel et renseignées. Pour la plupart des scénarios où de nouvelles données dynamiques sont générées en continu, il est avantageux d’adopter le traitement des données en continu, qui convient à la plupart des industries et des cas d’utilisation du Big Data.

Les systèmes de traitement de données de flux sont utilisés pour analyser les données de flux. Il existe déjà de nombreux systèmes de traitement de données de flux largement utilisés par les entreprises, tels que Apache Flink, Apache Storm, Spark Streaming et Apache Heron. Ces applications de traitement de flux de données se caractérisent par de grands déploiements et de longues durées d’exécution (des mois, voire des années) dans les applications, et chaque application s’exécute avec des données différentes, de sorte que même de petites améliorations des performances peuvent avoir des avantages financiers importants pour les entreprises.

Pour améliorer les performances du système, les paramètres de configuration des ressources doivent être réglés pour spécifier la quantité de ressources telles que les cœurs de processeur et la mémoire utilisée dans les tâches. Mais la sélection des paramètres de configuration clés et la recherche de leurs valeurs optimales pour les applications de traitement de données de flux sont très difficiles, et le réglage manuel de ces paramètres prend énormément de temps.

Pour une seule application inconnue, un ingénieur de performance, qui a une connaissance approfondie du système de traitement des données de flux, peut prendre plusieurs jours, voire des semaines, pour trouver sa configuration de ressources optimale.

Afin de résoudre le problème ci-dessus, les chercheurs ont commencé à appliquer des méthodes d’apprentissage automatique pour mener des recherches. Une étude a été publiée dans Informatique intelligente. Les auteurs ont utilisé le programme Apache Flink comme application expérimentale de traitement de données de flux.

L’approche d’apprentissage automatique a été utilisée pour régler automatiquement et efficacement les paramètres d’allocation des ressources pour l’application de traitement des données de flux. Il applique un algorithme de forêt aléatoire pour créer un modèle de performance très précis pour un programme de traitement de données de flux qui génère la latence de queue ou le débit de l’application, en prenant la vitesse des données d’entrée et les paramètres de configuration clés comme entrée. De plus, l’approche d’apprentissage automatique s’appuie sur l’algorithme d’optimisation bayésien (BOA) pour rechercher de manière itérative l’espace de configuration des ressources de grande dimension afin d’obtenir des performances optimales.

Il a été démontré expérimentalement que cette approche améliore considérablement la latence et le débit de queue du 99e centile. La méthode proposée dans cette étude est un outil de réglage des paramètres indépendant du système Flink, et peut être intégré dans d’autres systèmes de traitement de flux, tels que Spark Streaming et Apache Storm.

Fourni par l’informatique intelligente