Table des matières:
Vidéo: Hadoop Rack Awareness 2024
Outre l'optimisation du code d'application réel avec MapReduce techniques d'optimisation pour améliorer la fiabilité et la performance. Ils appartiennent à trois catégories: topologie matérielle / réseau, synchronisation et système de fichiers.
Topologie matérielle / réseau Big Data
Indépendamment de l'application, le matériel et les réseaux les plus rapides généreront probablement les temps d'exécution les plus rapides pour votre logiciel. Un avantage distinct de MapReduce est la possibilité de fonctionner sur des grappes peu coûteuses de matériel de base et de réseaux standards. Si vous ne faites pas attention à l'organisation physique de vos serveurs, vous n'obtiendrez pas les meilleures performances et le haut degré de tolérance aux pannes nécessaires pour prendre en charge les tâches Big Data.
Le 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 en termes de performances par rapport au déplacement des données et / ou du code d'un rack à un autre. Au cours de l'implémentation, vous pouvez configurer votre moteur MapReduce pour qu'il prenne conscience de cette proximité et en tire profit.
Conserver les données et le code ensemble est l'une des meilleures optimisations pour les performances de MapReduce. En fait, plus les éléments de traitement matériel sont proches l'un de l'autre, moins vous devrez faire face à la latence.
Synchronisation de Big Data
Comme il est inefficace de conserver tous les résultats de votre mapping dans le nœud, les mécanismes de synchronisation copient les résultats de mapping sur les nœuds réducteurs immédiatement après qu'ils ont été complétés. le traitement peut commencer tout de suite. Toutes les valeurs d'une même clé sont envoyées au même réducteur, garantissant à nouveau des performances supérieures et une meilleure efficacité.
Les sorties de réduction sont écrites directement dans le système de fichiers. Elles doivent donc être conçues et réglées pour de meilleurs résultats.
Système de fichiers Big Data
Votre implémentation MapReduce est supportée par un système de fichiers distribué. La principale différence entre les systèmes de fichiers locaux et distribués est la capacité. Pour gérer les énormes quantités d'informations dans un vaste monde de données, les systèmes de fichiers doivent être répartis sur plusieurs machines ou nœuds dans un réseau.
Les implémentations MapReduce reposent sur un style de distribution maître-esclave, où le nœud maître stocke toutes les métadonnées, les droits d'accès, le mappage et l'emplacement des fichiers et des blocs, etc. Les esclaves sont des nœuds où les données réelles sont stockées. Toutes les demandes vont au maître et sont ensuite traitées par le nœud esclave approprié.Lorsque vous envisagez la conception du système de fichiers, vous devez prendre en compte les éléments suivants:
-
Restez au chaud: Comme vous pouvez vous en douter, le nœud maître risque d'être surchargé car tout y commence. En outre, si le nœud maître échoue, tout le système de fichiers est inaccessible tant que le maître n'est pas restauré. Une optimisation très importante consiste à créer un nœud maître "warm standby" qui peut être mis en service si un problème survient avec le maître en ligne.
-
Le plus grand est le mieux: La taille du fichier est également un facteur important. Beaucoup de petits fichiers (moins de 100 Mo) doivent être évités. Les systèmes de fichiers distribués prenant en charge les moteurs MapReduce fonctionnent mieux lorsqu'ils sont remplis avec un nombre modeste de fichiers volumineux.
-
La vue longue: Comme les charges de travail sont gérées par lots, la bande passante réseau très soutenue est plus importante que les temps d'exécution rapides des mappeurs ou des réducteurs. L'approche optimale consiste pour le code à diffuser beaucoup de données lors de la lecture et à nouveau lorsqu'il est temps d'écrire dans le système de fichiers.
-
Gardez-le en sécurité: Mais pas trop. L'ajout de couches de sécurité sur le système de fichiers distribué dégradera ses performances. Les autorisations de fichiers sont là pour se prémunir contre les conséquences inattendues, pas un comportement malveillant. La meilleure approche consiste à s'assurer que seuls les utilisateurs autorisés ont accès à l'environnement du centre de données et à protéger le système de fichiers distribué de l'extérieur.