Dimensionnement des clusters

Par défaut, Cloud Data Fusion utilise l'autoscaling comme profil de calcul. L'estimation du meilleur nombre de nœuds de calcul de cluster pour une charge de travail est et une seule taille de cluster pour un pipeline entier n'est souvent pas la solution idéale. L'autoscaling Dataproc fournit un mécanisme d'automatisation la gestion des ressources de cluster et active l'autoscaling des VM de nœud de calcul de cluster. Pour plus consultez la page Autoscaling

Sur la page Configuration de Compute, qui affiche la liste des profils, vous trouverez Colonne Nombre total de cœurs, qui indique le nombre maximal de processeurs virtuels pour le profil à la hausse, par exemple Up to 84.

Si vous souhaitez utiliser le profil de calcul Dataproc , vous pouvez gérer en fonction de celle du pipeline.

Nœud maître

Les nœuds maîtres utilisent des ressources proportionnellement au nombre de pipelines ou d'applications supplémentaires en cours d'exécution sur le cluster. Si vous exécutez des pipelines les clusters éphémères, utilisent 2 processeurs et 8 Go de mémoire pour le maître. nœuds. Si vous utilisez des clusters persistants, vous aurez peut-être besoin de nœuds maîtres plus volumineux. pour suivre le workflow. Pour savoir si vous avez besoin de nœuds maîtres plus volumineux, peut surveiller l'utilisation de la mémoire et du processeur sur le nœud. Nous vous recommandons de dimensionner nœuds de calcul avec au moins 2 processeurs et 8 Go de mémoire. Si vous avez configuré vos pipelines pour utiliser de plus grandes quantités de mémoire, vous devez utiliser les nœuds de calcul plus volumineux.

Pour minimiser le temps d'exécution, assurez-vous que votre cluster dispose de suffisamment de nœuds pour permettre un traitement en parallèle autant que possible.

Nœuds de calcul

Les sections suivantes décrivent les aspects du dimensionnement des nœuds de calcul.

Processeur et mémoire

Nous vous recommandons de dimensionner vos nœuds de calcul avec au moins 2 processeurs et 8 Go mémoire. Si vous avez configuré vos pipelines pour utiliser de plus grandes quantités de mémoire, utilisez les nœuds de calcul plus volumineux. Par exemple, avec un nœud de calcul comportant quatre processeurs et 15 Go, chacun disposera de 4 processeurs et de 12 Go pour exécuter les conteneurs YARN. Si votre pipeline est configuré pour exécuter 1 processeur et 8 Go d'exécuteurs, YARN est impossible d'exécuter plus d'un conteneur par nœud de calcul. Chaque nœud de calcul avec 3 processeurs supplémentaires et 4 Go supplémentaires, qui est gaspillé, car il est inutilisable exécuter ce que vous voulez. Pour maximiser l'utilisation des ressources sur votre cluster, vous devez la mémoire YARN et le nombre de processeurs pour qu'il corresponde à un multiple exact de la quantité nécessaire par Exécuteur Spark. Vous pouvez vérifier la quantité de mémoire que chaque nœud de calcul a réservée pour YARN en vérifiant la propriété yarn.nodemanager.resource.memory-mb dans YARN.

Si vous utilisez Dataproc, la mémoire disponible pour YARN les conteneurs représenteront environ 75% de la mémoire de la VM. Taille minimale du conteneur YARN est également ajustée en fonction de la taille des VM de nœud de calcul. Certains nœuds de calcul courants et les paramètres YARN correspondants sont présentés dans le tableau suivant.

Processeur de nœud de calcul Mémoire du nœud de calcul (Go) Mémoire du nœud YARN (Go) Mémoire d'allocation minimale YARN (Mo)
1 4 3 256
2 8 6 512
4 16 12 1 024
8 32 24 1 024
16 64 51 1 024

Gardez à l'esprit que Spark demande plus de mémoire que celle de l'exécuteur. défini pour le pipeline, et que YARN arrondit la somme demandée. Pour Par exemple, supposons que vous ayez défini la mémoire de l'exécuteur sur 2 048 Mo, mais que vous n'ayez pas donné une valeur pour spark.yarn.executor.memoryOverhead, ce qui signifie que la valeur par défaut sur 384 Mo est utilisé. Cela signifie que Spark demande 2 048 Mo + 384 Mo. pour chaque exécuteur, que YARN arrondit au multiple exact de la variable YARN. l'allocation minimale. Lors de l'exécution sur un nœud de calcul de 8 Go, comme le gestionnaire YARN l'allocation minimale est de 512 Mo, elle est arrondie à 2,5 Go. Ce signifie que chaque nœud de calcul peut exécuter deux conteneurs, en utilisant de processeurs disponibles, mais en laissant 1 Go de mémoire YARN (de 6 Go à 2,5 Go à 2,5 Go) non utilisés. Cela signifie que le nœud de calcul sont un peu plus petits, ou les exécuteurs peuvent recevoir un peu plus de mémoire. Lors de l'exécution sur un nœud de calcul de 16 Go, 2 048 Mo + 1 024 Mo sont arrondie à 3 Go, car l'allocation minimale YARN est de 1 024 Mo. Cela signifie que chaque nœud de calcul peut exécuter quatre conteneurs, avec tous les processeurs. et la mémoire YARN utilisée.

Pour vous donner plus de contexte, le tableau suivant présente les tailles de nœuds de calcul recommandées pour certaines tailles d'exécuteur courantes.

Processeur d'exécuteur Mémoire de l'exécuteur (Mo) Processeur de nœud de calcul Mémoire du nœud de calcul ( Go)
1 2 048 4 15
1 3 072 4 21
1 4 096 4 26
2 8 192 4 26

Par exemple, un nœud de calcul de 26 Go se traduit par 20 Go de mémoire utilisable pour exécuter des conteneurs YARN. Avec la mémoire de l'exécuteur définie sur 4 Go, 1 Go correspond en tant que frais généraux, soit 5 Go de conteneurs YARN pour chaque exécuteur. Ce signifie que le nœud de calcul peut exécuter quatre conteneurs sans qu'il ne reste de ressources supplémentaires. Vous pouvez également multiplier la taille des nœuds de calcul. Par exemple, si la mémoire de l'exécuteur est définie sur 4 096 Go, un nœud de calcul disposant de 8 processeurs et de 52 Go de mémoire fonctionnent également bien. Les VM Compute Engine limitent la quantité de mémoire qu'une VM peut avoir en fonction du nombre de cœurs. Par exemple, une VM avec quatre cœurs doit avoir au moins 7,25 Go de mémoire et 26 Go de mémoire au maximum Cela signifie qu’un exécuteur configuré pour utiliser 1 processeur et 8 Go de mémoire utilisent 2 processeurs et 26 Go de mémoire sur la VM. Si les exécuteurs sont configurés pour utiliser deux processeurs et 8 Go de mémoire, tous les processeurs sont utilisés.

Disque

Le disque est important pour certains pipelines, mais pas pour tous. Si votre pipeline ne contenir aucun brassage. Le disque n'est utilisé que lorsque Spark est à court de mémoire. et doit renverser des données sur le disque. Pour ces types de pipelines, la taille du disque n'ont généralement pas d'impact très important sur vos performances. Si votre brassage beaucoup de données, les performances du disque feront la différence. Si vous utilisez Dataproc, nous vous recommandons d'utiliser des tailles de disque d'au moins 1 To, car les performances du disque augmentent avec la taille du disque. Pour plus d'informations sur les performances des disques, consultez la section Configurer les disques pour atteindre exigences.

Nombre de nœuds de calcul

Afin de réduire le temps d'exécution, vous devez vous assurer que votre cluster est suffisamment volumineux pour pouvoir fonctionner autant qu'il le peut en parallèle. Par exemple, si la source de votre pipeline lit les données avec 100 divisions, vous devez vous assurer est suffisamment volumineux pour exécuter 100 exécuteurs à la fois.

Le moyen le plus simple de savoir si votre cluster est sous-dimensionné est d'examiner le gestionnaire YARN en attente au fil du temps. Si vous utilisez Dataproc, vous pouvez créer un graphique sont disponibles sur la page des détails du cluster.

Si la quantité de mémoire en attente reste élevée pendant de longues périodes vous pouvez augmenter le nombre de nœuds de calcul pour augmenter cette capacité. à votre cluster. Dans l'exemple précédent, le cluster doit être augmenté de environ 28 Go pour garantir le niveau maximal de parallélisme.

Mode de flexibilité améliorée (EFM)

EFM vous permet de spécifier que seuls les nœuds de calcul primaires doivent être impliqués lors du brassage données. Étant donné que les nœuds de calcul secondaires ne sont plus responsables du brassage intermédiaire Lorsqu'elles sont supprimées d'un cluster, les jobs Spark ne subissent plus de retards les erreurs. Comme les nœuds de calcul primaires ne font jamais l'objet d'un scaling à la baisse, le cluster effectue un scaling à la baisse avec plus de stabilité et d'efficacité. Si vous exécutez des pipelines avec des brassages un cluster statique, nous vous recommandons d'utiliser EFM.

Pour en savoir plus sur EFM, consultez la page Mode de flexibilité améliorée de Dataproc.