Aperçu des performances du pipeline

Cette page explique la terminologie et les concepts de base du traitement des pipelines dans Cloud Data Fusion.

Les performances du pipeline dépendent des aspects suivants :

  • la taille et les caractéristiques de vos données ;
  • Structure de votre pipeline
  • Dimensionnement des clusters
  • Plug-ins utilisés par votre pipeline Cloud Data Fusion

Terminologie de traitement des pipelines dans Cloud Data Fusion

La terminologie suivante s'applique au traitement des pipelines dans Cloud Data Fusion.

Type de machine
Type de machines virtuelles (VM) utilisées (CPU, mémoire)
Cluster
Groupe de VM fonctionnant ensemble pour gérer des tâches de traitement de données à grande échelle.
Nœuds maîtres et de calcul
Machines physiques ou virtuelles capables d'effectuer des traitements. Les nœuds maîtres coordonnent généralement le travail. Les nœuds de calcul exécutent des exécuteurs qui traitent les données. Elles présentent des caractéristiques de machine (quantité de mémoire et nombre de vCores disponibles pour les processus).
vCores, cœurs ou processeurs
Ressource qui effectue des calculs. En général, vos nœuds fournissent un certain nombre de cœurs et vos exécuteurs demandent un ou plusieurs processeurs. Équilibrez cela avec la mémoire, sinon vous risquez de sous-utiliser votre cluster.
Pilote
 Une seule VM sert de coordinateur central pour l'ensemble du cluster. Il gère les tâches, planifie le travail sur les nœuds de calcul et surveille la progression des jobs.
Exécuteurs
 Plusieurs VM effectuent les tâches de traitement des données, selon les instructions du pilote. Vos données sont partitionnées et distribuées entre ces exécuteurs pour un traitement parallèle. Pour utiliser tous les exécuteurs, vous devez disposer de suffisamment de fractionnements.
Fractionnements ou partitions
Un ensemble de données est divisé en fractions (également appelées partitions) pour traiter les données en parallèle. Si vous n'avez pas assez de fractionnements, vous ne pouvez pas utiliser l'intégralité du cluster.

Présentation de l'optimisation des performances

Les pipelines sont exécutés sur des clusters de machines. Lorsque vous choisissez d'exécuter des pipelines Cloud Data Fusion sur des clusters Managed Service for Apache Spark (qui est le provisionneur recommandé), YARN (Yet Another Resource Negotiator) est utilisé en arrière-plan. Managed Service pour Apache Spark utilise YARN pour la gestion des ressources dans le cluster. Lorsque vous envoyez un pipeline Cloud Data Fusion à un cluster Managed Service for Apache Spark, le job Apache Spark sous-jacent utilise YARN pour l'allocation des ressources et la planification des tâches.

Un cluster se compose de nœuds maîtres et de nœuds de calcul. Les nœuds maîtres sont généralement responsables de la coordination du travail, tandis que les nœuds de calcul effectuent le travail proprement dit. Les clusters comportent généralement un petit nombre de nœuds maîtres (un ou trois) et un grand nombre de nœuds de calcul. YARN est utilisé comme système de coordination du travail. YARN exécute un service Resource Manager sur le nœud maître et un service Node Manager sur chaque nœud de calcul. Les gestionnaires de ressources se coordonnent avec tous les gestionnaires de nœuds pour déterminer où créer et exécuter des conteneurs sur le cluster.

Gestionnaires de ressources et gestionnaires de nœuds YARN

Sur chaque nœud de calcul, le gestionnaire de nœuds réserve une partie de la mémoire et des processeurs disponibles sur la machine pour exécuter les conteneurs YARN. Par exemple, sur un cluster Managed Service for Apache Spark, si vos nœuds de calcul sont des VM n1-standard-4 (4 CPU, 15 Go de mémoire), chaque NodeManager réservera 4 CPU et 12 Go de mémoire pour exécuter les conteneurs YARN. Les 3 Go de mémoire restants sont réservés aux autres services Hadoop exécutés sur le nœud.

Lorsqu'un pipeline est exécuté sur YARN, il lance un pilote de workflow de pipeline, un pilote Spark et de nombreux exécuteurs Spark dans Managed Service for Apache Spark.

Pilotes et exécuteurs

Le pilote de workflow est chargé de lancer un ou plusieurs programmes Spark qui composent un pipeline. Le pilote de workflow n'effectue généralement pas beaucoup de tâches. Chaque programme Spark exécute un seul pilote Spark et plusieurs exécuteurs Spark. Le pilote coordonne le travail entre les exécuteurs, mais n'effectue généralement aucun travail réel. La plupart du travail est effectué par les exécuteurs Spark.

Étapes suivantes