Estimation de la capacité du cluster Amazon EMR - AWS Conseils prescriptifs

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Estimation de la capacité du cluster Amazon EMR

Bien qu'Amazon EMR soit une plateforme redimensionnable, il est important de bien dimensionner les clusters. Le dimensionnement approprié permet d'éviter un cluster lent, s'il est sous-dimensionné, ou des coûts plus élevés, si le cluster est surdimensionné. Pour anticiper ces problèmes, vous pouvez calculer le nombre et le type de nœuds qui seront nécessaires pour les charges de travail.

Nœuds primaires

Ce type de nœud est responsable de la coordination de la distribution des données et des processus. Comme indiqué précédemment, les exigences de calcul pour les nœuds primaires sont faibles. Vous pouvez utiliser un seul nœud primaire pour gérer votre cluster Amazon EMR. Toutefois, vous pouvez utiliser jusqu'à trois nœuds primaires afin de ne pas avoir de point de défaillance unique. Si un nœud primaire tombe en panne, Amazon EMR bascule sur l'un des deux autres nœuds primaires.

Nœuds principaux et nœuds de tâches

La différence entre les nœuds principaux et les nœuds de tâches réside dans le fait que les nœuds de tâches ne stockent pas de données ; ils fournissent uniquement la puissance nécessaire à l'exécution de tâches de calcul parallèles.

Pour calculer le nombre de nœuds principaux et de nœuds de tâches, vous devez connaître la taille de vos données et votre utilisation approximative de la mémoire.

Nœuds principaux

Les nœuds principaux sont chargés d'exécuter les tâches de traitement des données et de les stocker dans le système de fichiers distribué Hadoop (HDFS). Pour calculer la capacité des nœuds principaux, définissez le nombre de nœuds principaux, puis multipliez le nombre de nœuds par la capacité de stockage Amazon Elastic Block Store (Amazon EBS) de chaque nœud.

Par exemple, si vous définissez 10 nœuds principaux pour traiter 1 Tio de données, et que vous disposez d'un type d'instance m5.xlarge avec 64 Gio de stockage Amazon EBS, vous en avez 10 nodes × 64 GiB, soit 640 Gio de capacité. Sur la base du facteur de réplication HDFS de trois, la taille de vos données est répliquée trois fois dans les nœuds, de sorte que 1 Tio de données nécessite une capacité de 3 Tio. Comme cet exemple ne possède que 640 Gio, vous devez augmenter le nombre de nœuds ou modifier le type d'instance jusqu'à atteindre une capacité de 3 Tio.

Le type d'instance m5.4xlarge dispose de 256 Gio de stockage. Passer à un type d'instance m5.4xlarge et sélectionner 12 instances permet d'obtenir une capacité suffisante.

12 instances × 256 GiB of storage = 3072 GiB = 3 TiB available

Nœuds de tâches

Les nœuds de tâches exécutent uniquement des tâches. Ils ne stockent pas de données. Pour calculer le nombre de nœuds de tâches, vous avez besoin d'une estimation de l'utilisation de la mémoire. Cette capacité peut être divisée en nœuds principaux et nœuds de tâches. Pour calculer le nombre de nœuds de tâches nécessaires, vous pouvez soustraire de l'utilisation de la mémoire fournie par les nœuds principaux que vous avez calculée à l'étape précédente.

Pour disposer d'une plage de mémoire étendue, il est recommandé de multiplier par trois la mémoire nécessaire.

Supposons que vous ayez 28 processus de 20 Gio chacun.

3 × 28 processes × 20 GiB of memory = 1680 GiB of memory

Dans cet exemple, vos nœuds principaux disposent de 64 Gio de mémoire (instances m5.4xlarge). Vos nœuds principaux fournissent 64 GiB × 12 nodes = 768 GiB of memory, ce qui n'est pas suffisant dans cet exemple.

Pour déterminer le manque, soustrayez la mémoire du nœud principal de la mémoire totale requise.

1680 GiB – 768 GiB core node memory = 912 GiB memory shortage.

Les nœuds de tâches peuvent fournir les 912 Gio de mémoire restants. Dans cet exemple, vos nœuds de tâches disposent de 32 Gio de mémoire (instances m5.2xlarge). Pour obtenir le nombre de nœuds de tâches nécessaires, divisez le manque de mémoire par la mémoire du type d'instance.

912 GiB/32 GiB = 28.5 task nodes

Vous ne pouvez pas avoir une fraction de nœud de tâche, vous devez donc arrondir à 29 nœuds de tâche.