Dans ce tutoriel Hadoop, nous allons vous expliquer le concept de localité des données dans Hadoop.
Tout d'abord, nous verrons l'introduction à MapReduce Data Locality dans Hadoop, puis nous discuterons ensuite du besoin de Hadoop Data Locality avec les catégories de Data Locality dans MapReduce, Data Locality Optimization.
Enfin, nous verrons les avantages du principe Hadoop Data Locality dans ce tutoriel MapReduce.
Qu'est-ce que la localité des données dans Hadoop MapReduce ?
La localité des données dans Hadoop est le processus consistant à déplacer le calcul près de l'endroit où résident les données réelles au lieu de déplacer des données volumineuses vers le calcul. Cela minimise la congestion globale du réseau. Cela augmente également le débit global du système.
Le principal inconvénient de Hadoop était le trafic réseau entre commutateurs en raison de l'énorme quantité de données. Pour surmonter cet inconvénient, Data Locality a vu le jour.
Dans Hadoop, HDFS stocke des ensembles de données. Le framework divise les ensembles de données en blocs et les stocke sur les nœuds de données. Lorsqu'un client exécute la tâche MapReduce, NameNode envoie le code MapReduce aux nœuds de données sur lesquels les données sont disponibles en fonction de la tâche MapReduce.
Exigence pour la localité des données Hadoop
L'architecture Hadoop doit satisfaire aux conditions ci-dessous pour bénéficier de tous les avantages de la localisation des données :
- Tout d'abord, le cluster Hadoop doit avoir la topologie appropriée. Le code Hadoop doit pouvoir lire la localité des données.
- Deuxièmement, Apache Hadoop doit connaître la topologie des nœuds où les tâches sont exécutées. Hadoop doit également savoir où se trouvent les données.
Catégories de localisation des données dans Hadoop
Les différentes catégories dans Hadoop Data Locality sont les suivantes :
1. Localité des données locales dans Hadoop
Dans ce cas, les données sont situées sur le même nœud que le mapper travailler sur les données. En cela, la proximité des données est très proche du calcul. La localité des données locales des données est le scénario préféré.
2. Localisation des données intra-rack dans Hadoop
Comme nous savons qu'il n'est pas toujours possible d'exécuter le mappeur sur le même nœud de données en raison de contraintes de ressources. Dans ce cas, il est préférable d'exécuter le mappeur sur un nœud différent mais sur le même rack.
3. Localité des données inter–rack dans Hadoop
Parfois, il n'est pas non plus possible d'exécuter le mappeur sur un nœud différent dans le même rack. Dans une telle situation, nous exécuterons le mappeur sur les nœuds de différents racks. La localisation des données entre les baies est le scénario le moins préféré.
Optimisation de la localisation des données Hadoop
Étant donné que la localité des données est le principal avantage de Hadoop MapReduce. Mais cela n'est pas toujours bénéfique dans la pratique pour diverses raisons telles que le cluster hétérogène, l'exécution spéculative, la distribution et le placement des données et la disposition des données.
Dans les grands clusters, les défis deviennent plus fréquents. Comme dans un grand cluster, plus le nombre de nœuds de données et de données est important, moins il y a de localité.
Dans les clusters plus grands, certains nœuds sont plus récents et plus rapides que les autres, ce qui crée un rapport données/calcul déséquilibré. Ainsi, les grands clusters ont tendance à ne pas être complètement homogènes.
Dans l'exécution spéculative Hadoop, car les données peuvent ne pas être locales, mais elles utilisent la puissance de calcul. La cause principale réside également dans la disposition/le placement des données. De plus, le traitement de données non local met à rude épreuve le réseau, ce qui crée un problème d'évolutivité. Par conséquent, le réseau devient le goulot d'étranglement.
Nous pouvons également améliorer la localité des données en détectant d'abord les travaux qui se sont dégradés au fil du temps ou un problème de localité des données. La résolution de problèmes est plus complexe et implique de modifier le placement et la disposition des données à l'aide d'un planificateur différent.
Après cela, nous devons vérifier si une nouvelle exécution de la même charge de travail a un meilleur ratio de localité des données.
Avantages de la localisation des données dans Hadoop
- Haut débit : La localisation des données dans Hadoop augmente le débit global du système.
- Exécution plus rapide : Dans la localité des données, le framework déplace le code vers le nœud où résident les données au lieu de déplacer des données volumineuses vers le nœud. Ainsi, cela rend Hadoop plus rapide. Étant donné que la taille du programme est toujours inférieure à la taille des données, le déplacement des données est un goulot d'étranglement du transfert réseau.
Conclusion
En conclusion, la localisation des données dans Hadoop améliore l'exécution globale du système et rend Hadoop plus rapide. Par conséquent, cela réduit la congestion du réseau.
Si vous trouvez ce blog utile ou si vous avez des questions, laissez un commentaire dans la section des commentaires ci-dessous. Nous serons heureux de les résoudre.