Il n'y a pas de formule. Cela dépend du nombre de cœurs et la quantité de mémoire avez-vous. Le nombre de mapper + nombre de réducteur ne doit pas dépasser le nombre de cœurs en général. Gardez à l'esprit que la machine est également en cours d'exécution de la Tâche de suivi et Nœud de Données des démons. Une suggestion est plus mappeurs que réducteurs. Si j'étais vous, je voudrais exécuter une de mes travaux typiques avec une quantité raisonnable de données pour l'essayer.
Grâce racine.. la Prise de 48 GO de mémoire RAM disponible sur chaque machine et en ayant un 8 core de la machine. Disons que nous réserve 1 GO de RAM pour chaque mapred tâche, la valeur optimale de 48 GO de RAM - 1 GO pour DataNode - 1 GO pour TaskTracker = 46 GO de mémoire vive disponible. Dans ce cas, doit nous avons 8 que les mappeurs pour 1 machine ou devrions-nous augmenter à dire 46, considérant que tous les réducteurs de démarrer après les cartographes complète? La plupart des Processeurs viennent avec la technologie hyper threading et il est activé par défaut. donc, si vous avez 16 threads cpu, vous pouvez probablement augmenter le nombre de plus. Je me concentrerais sur le nombre de CPU. Pour mémoire, même si vous n'êtes pas à l'aide de tous, le système peut toujours trouver un bon usage, comme la mise en cache. 1G pour les démons est la valeur par défaut. Je voudrais surveiller le système et tenir compte d'un nombre plus élevé. La plupart du temps, les cartographes sont en cours d'exécution en parallèle avec les réducteurs. En cours d'exécution hors de caractères... Donc, si j'étais vous, je commencerais avec 10 mappeur et 4 réducteur. Combien de disques avez-vous? les contributeurs vont les lire en parallèle. Vous avez plusieurs périphériques de disque? Grâce racine. À compter de maintenant, j'ai seulement 1 disque et qu'un RAID pour la redondance. Ce que je remarque est que, actuellement, même si je allouer 1GO de RAM pour chaque mappeur, quand je lance une commande en haut je le vois occupant environ 1,6 GO de Mémoire Virtuelle et de l'ordre de 0.5 GO de Mémoire Réelle. Ce comportement est-il normal? La redondance de chaque nœud n'est pas proposé en général. HDFS dispose de son propre licenciement. Dites vous exécutez 10 mappeurs sera la lecture du disque en même temps. Pour une normale de 7200 tr / min disque, 2-3 mappeurs est un bon nombre. Pour vous système, avec 48G mem et 16 thread cpu, I/O sera susceptible d'être le problème. Je vous suggère d'obtenir plusieurs disque pour chaque nœud et de les configurer en mode JBOD. Quant à la question de la mémoire, je ne serais pas s'inquiéter trop. Normalement, si vous avez spécifié 1G, la mémoire virtuelle peut-être plus de 1G.
Citant "Hadoop Le Précise le Guide, 3e édition", page 306
Parce que MapReduce sont normalement
I/O-lié, il est logique d'avoir plus de tâches que les processeurs pour obtenir une meilleure
de l'utilisation.
Le montant de la surcharge dépend de l'utilisation du PROCESSEUR d'emplois
vous exécuter, mais une bonne règle de base est d'avoir un facteur de un à deux plus
tâches (en comptant à la fois la carte et de réduire les tâches) à celui des processeurs.
Un processeur dans la citation ci-dessus est équivalente à une logique de base.
Mais c'est juste en théorie, et très probablement, chaque cas est différent d'un autre, certains tests doivent être effectués. Mais ce nombre peut être un bon début pour faire des tests.
Probablement, vous devriez regarder aussi réducteur de chargement paresseux, qui permet de réducteurs de commencer plus tard, lorsque requis, donc en gros, le nombre d'emplacements de carte peut être augmenté. N'ont pas beaucoup d'idée sur ce que mais, me semble utile.
Qui sera très en demande et dépendant du matériel. Si les données sont agrégées très bonne sur le mappeur de côté, moins de données circulant sur le réseau. Dans ce cas, si le réducteur commence trop tôt, il sera juste en attente pour les données à traiter. Si vous avez un réseau rapide, ce sera la même situation. D'autre part, de retarder le réducteur de retarder le travail. Le but n'est pas de courir plus mappeur, mais pour obtenir le travail terminer plus vite. Racine: vous a Donné un commentaire!. Je ne suis pas sûr, mais juste pour clarifier moi-même, disons que nous avons un 8 core sans HT. Permet de dire, ici, nous run 5 parallèle de la carte de tâches et 2 en parallèle de réduire les tâches. Donc, ici, nous avons réservé 2 slots pour réduire les tâches. Il n'est pas le cas que si nous paresseusement charge du réducteur, ces 2 fentes peuvent être utilisés par la carte de tâches au lieu de cela, ce qui augmente le nombre de parallèle de la carte de tâches à 7? JtheRocker: Si l'on mappeurs 5 et réducteurs que 2, nous ne pouvons pas utiliser les fentes de Réducteurs. Max 5 mappeurs pouvez exécuter à tout moment. techlad: je l'Ai. Il en sera de chargement paresseux pour vous? Je n'en suis pas sûr.
Pas. de mappeurs est décidé, conformément à la localité des données principe comme décrit précédemment. La Localité des données principe : Hadoop essaie de son mieux pour exécuter carte tâches sur les nœuds où les données sont présentes localement pour optimiser sur le réseau et inter-nœud de communication de la latence. Comme les données d'entrée est divisé en morceaux et nourris aux cartes différentes tâches, il est souhaitable de disposer de toutes les données de la fed pour que la carte de tâches disponibles sur un seul nœud.Depuis HDFS ne garantit que les données ayant une taille égale à sa taille d'un bloc (64M) pour être présent sur un nœud, il est conseillé/préconisée pour avoir le split de taille égale à la SF de la taille du bloc, de sorte que la carte tâche peut prendre avantage de cette de données de localisation. Par conséquent, 64M de données pour mapper. Si nous voyons certains mappeurs en cours d'exécution pour une très petite période de temps, essayer de faire tomber le nombre de contributeurs et de les faire courir plus longtemps pour une minute ou deux.
Pas. de réducteurs devrait être légèrement inférieur au nombre de réduire fentes dans le cluster (le concept de machines à sous vient avec une pré-configuration de la tâche propriétés du suivi lors de la configuration du cluster), de sorte que tous les réducteurs de terminer à l'une des vagues et de prendre la pleine utilisation des ressources du cluster.
Il n'y a pas de formule. Cela dépend du nombre de cœurs et la quantité de mémoire avez-vous. Le nombre de mapper + nombre de réducteur ne doit pas dépasser le nombre de cœurs en général. Gardez à l'esprit que la machine est également en cours d'exécution de la Tâche de suivi et Nœud de Données des démons. Une suggestion est plus mappeurs que réducteurs. Si j'étais vous, je voudrais exécuter une de mes travaux typiques avec une quantité raisonnable de données pour l'essayer.
La plupart des Processeurs viennent avec la technologie hyper threading et il est activé par défaut. donc, si vous avez 16 threads cpu, vous pouvez probablement augmenter le nombre de plus. Je me concentrerais sur le nombre de CPU. Pour mémoire, même si vous n'êtes pas à l'aide de tous, le système peut toujours trouver un bon usage, comme la mise en cache. 1G pour les démons est la valeur par défaut. Je voudrais surveiller le système et tenir compte d'un nombre plus élevé. La plupart du temps, les cartographes sont en cours d'exécution en parallèle avec les réducteurs.
En cours d'exécution hors de caractères... Donc, si j'étais vous, je commencerais avec 10 mappeur et 4 réducteur. Combien de disques avez-vous? les contributeurs vont les lire en parallèle. Vous avez plusieurs périphériques de disque?
Grâce racine. À compter de maintenant, j'ai seulement 1 disque et qu'un RAID pour la redondance. Ce que je remarque est que, actuellement, même si je allouer 1GO de RAM pour chaque mappeur, quand je lance une commande en haut je le vois occupant environ 1,6 GO de Mémoire Virtuelle et de l'ordre de 0.5 GO de Mémoire Réelle. Ce comportement est-il normal?
La redondance de chaque nœud n'est pas proposé en général. HDFS dispose de son propre licenciement. Dites vous exécutez 10 mappeurs sera la lecture du disque en même temps. Pour une normale de 7200 tr / min disque, 2-3 mappeurs est un bon nombre. Pour vous système, avec 48G mem et 16 thread cpu, I/O sera susceptible d'être le problème. Je vous suggère d'obtenir plusieurs disque pour chaque nœud et de les configurer en mode JBOD. Quant à la question de la mémoire, je ne serais pas s'inquiéter trop. Normalement, si vous avez spécifié 1G, la mémoire virtuelle peut-être plus de 1G.
OriginalL'auteur root1982
Citant "Hadoop Le Précise le Guide, 3e édition", page 306
Un processeur dans la citation ci-dessus est équivalente à une logique de base.
Mais c'est juste en théorie, et très probablement, chaque cas est différent d'un autre, certains tests doivent être effectués. Mais ce nombre peut être un bon début pour faire des tests.
OriginalL'auteur Jifeng Zhang
Probablement, vous devriez regarder aussi réducteur de chargement paresseux, qui permet de réducteurs de commencer plus tard, lorsque requis, donc en gros, le nombre d'emplacements de carte peut être augmenté. N'ont pas beaucoup d'idée sur ce que mais, me semble utile.
Racine: vous a Donné un commentaire!. Je ne suis pas sûr, mais juste pour clarifier moi-même, disons que nous avons un 8 core sans HT. Permet de dire, ici, nous run 5 parallèle de la carte de tâches et 2 en parallèle de réduire les tâches. Donc, ici, nous avons réservé 2 slots pour réduire les tâches. Il n'est pas le cas que si nous paresseusement charge du réducteur, ces 2 fentes peuvent être utilisés par la carte de tâches au lieu de cela, ce qui augmente le nombre de parallèle de la carte de tâches à 7?
JtheRocker: Si l'on mappeurs 5 et réducteurs que 2, nous ne pouvons pas utiliser les fentes de Réducteurs. Max 5 mappeurs pouvez exécuter à tout moment.
techlad: je l'Ai. Il en sera de chargement paresseux pour vous? Je n'en suis pas sûr.
OriginalL'auteur SSaikia_JtheRocker
Prises de Hadoop Gyan-Mon blog:
OriginalL'auteur Abhishek Jain