Comment optimiser tâches MapReduce

Mis à part l'optimisation du code de l'application réelle avec MapReduce pour les grands projets de données, vous pouvez utiliser certaines techniques d'optimisation pour améliorer la fiabilité et la performance. Ils se répartissent en trois catégories: matériels / topologie du réseau, synchronisation, et le système de fichier.

Sommaire

Big matériel de données / la topologie du réseau

Indépendant d'application, le matériel et les réseaux les plus rapides seront probablement donner les temps d'exécution les plus rapides pour votre logiciel. Un avantage distinct de MapReduce est la capacité de fonctionner sur des clusters peu coûteux de matériel de base et des réseaux standard. Si vous ne faites pas attention à l'endroit où vos serveurs sont organisés physiquement, vous ne serez pas obtenir les meilleures performances et le degré élevé de tolérance aux pannes nécessaire pour soutenir les tâches de données volumineux.

Du matériel de base est souvent stocké dans des racks dans le centre de données. La proximité du matériel dans le rack offre un avantage de performance par opposition au déplacement de données et / ou un code de rack,. Au cours de la mise en œuvre, vous pouvez configurer votre MapReduce moteur d'être au courant et profiter de cette proximité.




Garder les données et le code est ainsi l'une des meilleures optimisations pour MapReduce la performance. En substance, plus les éléments de traitement de matériel sont à l'autre, le moins de latence, vous aurez à traiter.

Big synchronisation de données

Parce qu'il est inefficace pour contenir tous les résultats de votre cartographie dans le noeud, les mécanismes de synchronisation de copier les résultats de la cartographie aux nœuds réduisant immédiatement après qu'ils ont terminé sorte que le traitement peut commencer tout de suite. Toutes les valeurs de la même clé sont envoyés à la même réducteur, en assurant de nouveau de meilleures performances et une meilleure efficacité.

Les sorties de réduction sont écrites directement dans le système de fichiers, donc il doit être conçu et réglé pour de meilleurs résultats.

Big système de fichiers de données

Votre mise en œuvre de MapReduce est soutenu par un système de fichiers distribué. La différence majeure entre les systèmes de fichiers locaux et distribués est la capacité. Pour gérer les énormes quantités d'informations dans un grand monde de données, les systèmes de fichiers doivent être répartis sur plusieurs machines ou des nœuds dans un réseau.

Implémentations MapReduce reposent sur un style maître-esclave de la distribution, où le nœud maître stocke toutes les métadonnées, droits d'accès, de cartographie et de localisation des fichiers et des blocs, et ainsi de suite. Les esclaves sont des noeuds où les données réelles sont stockées. Toutes les demandes vont au maître, puis sont traitées par le noeud esclave appropriée. Comme vous contemplez la conception du système de fichiers, vous devriez considérer les points suivants:

  • Maintenir au chaud: Comme on pouvait s'y attendre, le nœud maître pourrait obtenir surchargés de travail parce que tout commence par là. En outre, si le nœud maître échoue, le système de fichiers est inaccessible jusqu'à ce que le maître est restauré. Une optimisation très important est de créer une “ de secours à chaud ” nœud maître qui peut sauter dans le service en cas de problème avec le maître en ligne.

  • Le plus gros le meilleur: Taille du fichier est également une considération importante. Beaucoup de petits fichiers (moins de 100 Mo) doivent être évités. Systèmes de fichiers distribués à l'appui moteurs de MapReduce travaillent mieux quand ils sont remplis avec un nombre modeste de gros fichiers.

  • La vision à long terme: Parce que les charges de travail sont gérés par lots, la bande passante réseau très soutenue est plus important que le temps d'exécution rapides des cartographes ou réducteurs. L'approche optimale est pour le code pour diffuser beaucoup de données quand il est en train de lire et de nouveau quand il est temps d'écrire sur le système de fichiers.

  • Conserver en toute sécurité: Mais pas trop. Ajout de couches de sécurité sur le système de fichiers distribué sera dégrader ses performances. Les permissions de fichiers sont là pour se prémunir contre les conséquences involontaires, comportement pas malveillant. La meilleure approche est d'assurer que seuls les utilisateurs autorisés ont accès à l'environnement de centre de données et pour maintenir le système de fichiers distribué protégée de l'extérieur.


» » » » Comment optimiser tâches MapReduce