4 votes

Combien de mappeurs/réducteurs doivent être définis lors de la configuration d'un cluster Hadoop ?

Lors de la configuration d'un cluster Hadoop, quelle est la méthode scientifique pour définir le nombre de mappeurs/réducteurs pour le cluster ?

5voto

paul bruno Points 271

Il n'y a pas de formule. Cela dépend du nombre de cœurs et de la quantité de mémoire dont vous disposez. Le nombre de mappeurs + le nombre de réducteurs ne doit pas dépasser le nombre de cœurs en général. N'oubliez pas que la machine exécute également les démons Task Tracker et Data Node. L'une des suggestions générales est d'utiliser plus de mappeurs que de réducteurs. Si j'étais vous, j'exécuterais une de mes tâches typiques avec une quantité raisonnable de données pour l'essayer.

1voto

Jifeng Zhang Points 491

Citation de "Hadoop The Definite Guide, 3rd edition", page 306

Comme les travaux MapReduce sont normalement d'E/S, il est logique d'avoir plus de tâches que de processeurs pour obtenir une meilleure utilisation. meilleure utilisation.

La quantité de sursouscription dépend de l'utilisation de l'unité centrale des travaux. que vous exécutez, mais une bonne règle empirique est d'avoir un facteur compris entre un et deux plus de tâches (en comptant les tâches de map et de reduce) que de processeurs.

Dans la citation ci-dessus, un processeur est équivalent à un noyau logique.

Mais ce n'est qu'en théorie, et il est fort probable que chaque cas d'utilisation est différent d'un autre, certains tests doivent être effectués. Mais ce nombre peut être un bon point de départ pour effectuer des tests.

0voto

SSaikia_JtheRocker Points 3236

Vous devriez probablement aussi examiner le chargement paresseux des réducteurs, qui permet aux réducteurs de démarrer plus tard lorsque cela est nécessaire, ce qui permet d'augmenter le nombre d'emplacements de cartes. Je n'ai pas beaucoup d'idées à ce sujet, mais cela semble utile.

0voto

Abhishek Jain Points 833

Tiré de Hadoop Gyan-Mon blog :

Le nombre de mappeurs est décidé en fonction du principe de localisation des données décrit précédemment. Principe de localisation des données : Hadoop fait de son mieux pour exécuter les tâches de mappage sur les nœuds où les données sont présentes localement afin d'optimiser le réseau et la latence de communication entre les nœuds. Comme les données d'entrée sont divisées en morceaux et fournies à différentes tâches cartographiques, il est souhaitable que toutes les données fournies à cette tâche cartographique soient disponibles sur un seul nœud. Comme HDFS ne garantit que les données ayant une taille égale à sa taille de bloc (64M) d'être présentes sur un nœud, il est conseillé/conseillé d'avoir une taille de division égale à la taille de bloc HDFS afin que la tâche cartographique puisse profiter de cette localisation des données. Par conséquent, 64M de données par mappeur. Si nous voyons certains mappeurs fonctionner pendant une très petite période de temps, essayez de réduire le nombre de mappeurs et de les faire fonctionner plus longtemps pendant une minute ou deux.

Le nombre de réducteurs doit être légèrement inférieur au nombre de slots de réduction dans le cluster (le concept de slots fait l'objet d'une préconfiguration dans les propriétés du job/task tracker lors de la configuration du cluster) afin que tous les réducteurs terminent en une seule vague et utilisent pleinement les ressources du cluster.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X