Dans ce blog, nous discuterons de Jointure latérale de la carte et ses avantages par rapport à l'opération de jointure normale Ruche .Il s'agit d'un concept important que vous devrez apprendre pour mettre en œuvre votre .Mais avant de le savoir, nous devons d'abord comprendre le concept de 'Joindre' et ce qui se passe en interne lorsque nous effectuons la jointure Ruche .
Joindre est une clause qui combine les enregistrements de deux tables (ou ensembles de données).
Supposons que nous ayons deux tables A et B.Lorsque nous effectuons une opération de jointure sur elles, elle renverra les enregistrements qui sont la combinaison de toutes les colonnes de A et B.
Voyons maintenant la fonctionnalité de la jointure normale avec un exemple.
Chaque fois que nous appliquons une opération de jointure, le travail sera affecté à une tâche de réduction de carte qui se compose de deux étapes: un «Étape de la carte »Et un« Réduire le stade ». La tâche d'un mappeur pendant l'étape de la carte consiste à 'lis' les données des tables de jointure et vers 'revenir' la «Clé de jointure» et «Valeur de jointure» paire dans un fichier intermédiaire. En outre, à l'étape de mélange, ce fichier intermédiaire est ensuite trié et fusionné. Le travail du réducteur pendant la phase de réduction consiste à prendre ce résultat trié comme entrée et à terminer la tâche de jointure.
La jointure côté carte est similaire à une jointure, mais toute la tâche sera effectuée par le mappeur seul.
La jointure côté carte conviendra principalement aux petites tables pour optimiser la tâche.
Comment la jointure côté carte optimisera-t-elle la tâche?
Supposons que nous ayons deux tables dont l'une est une petite table. Lorsque nous soumettons une tâche de réduction de carte, une tâche locale de réduction de carte sera créée avant la tâche de réduction de carte de jointure d'origine qui lira les données de la petite table à partir de HDFS et les stockera dans une table de hachage en mémoire. Après lecture, il sérialise la table de hachage en mémoire dans un fichier de table de hachage.
chef vs marionnette vs jenkins
Dans la prochaine étape, Lorsque la tâche de réduction de mappage de jointure d'origine est en cours d'exécution, elle déplace les données du fichier de table de hachage vers le cache distribué Hadoop, qui remplit ces fichiers sur le disque local de chaque mappeur. Ainsi, tous les mappeurs peuvent charger ce fichier de table de hachage persistant dans la mémoire et effectuer le travail de jointure comme auparavant. Le flux d'exécution de la jointure de carte optimisée est illustré dans la figure ci-dessous. Après optimisation, le petit tableau ne doit être lu qu'une seule fois. De plus, si plusieurs mappeurs s'exécutent sur la même machine, le cache distribué n'a besoin de pousser qu'une seule copie du fichier de table de hachage sur cette machine.
Avantages de l'utilisation de la jointure latérale de la carte:
- La jointure côté carte permet de minimiser le coût encouru pour le tri et la fusion dans le mélanger et réduire étapes.
- La jointure côté carte contribue également à améliorer les performances de la tâche en réduisant le temps nécessaire pour terminer la tâche.
Inconvénients de la jointure côté carte:
- La jointure côté carte n'est adéquate que lorsque l'une des tables sur lesquelles vous effectuez l'opération de jointure côté carte est suffisamment petite pour tenir dans la mémoire. Par conséquent, il n'est pas approprié d'effectuer une jointure côté carte sur les tables qui sont des données énormes dans les deux.
Exemple simple pour les jointures de réduction de carte:
Créons deux tableaux:
- Emp : contient les détails d'un employé, tels que le nom de l'employé, l'ID de l'employé et le service auquel il appartient.
- Département: contient les détails comme le nom du département, l'ID du département, etc.
Créez deux fichiers d'entrée comme indiqué dans l'image suivante pour charger les données dans les tables créées.
employé.txt
dept.txt
Maintenant, chargeons les données dans les tables.
controverse sur l'intelligence artificielle pour et contre
Laissez-nous effectuer le Côté carte Joindre sur les deux tableaux pour extraire la liste des départements dans lesquels chaque salarié travaille.
Ici le deuxième service de table est une petite table. N'oubliez pas que le nombre de services sera toujours inférieur au nombre d'employés d'une organisation.
Maintenant, exécutons la même tâche à l'aide de la jointure côté Réduire normale.
Lors de l'exécution des deux jointures, vous pouvez trouver les deux différences:
structures de données de base en java
La jointure de réduction de mappage a terminé le travail en moins de temps par rapport au temps nécessaire pour une jointure normale.
La jointure de réduction de carte a terminé son travail sans l'aide d'un réducteur alors que la jointure normale a exécuté ce travail avec l'aide d'un réducteur.
Par conséquent, Jointure côté carte est votre meilleur pari lorsque l'une des tables est suffisamment petite pour tenir en mémoire pour terminer le travail dans un court laps de temps.
Dans Environnement en temps réel , vous aurez des ensembles de données avec une énorme quantité de données. Ainsi, l'analyse et la récupération des données prendront du temps si l'un des ensembles de données est de plus petite taille. Dans ces cas Jointure côté carte aidera à terminer le travail en moins de temps.
Il n'y a jamais eu de meilleur moment pour maîtriser Hadoop! Commencez dès maintenant avec le cours Big Data et Hadoop spécialement organisé par Edureka.
Les références:
https://www.facebook.com/notes/facebook-engineering/join-optimization-in-apache-hive/470667928919
Articles Similaires:
7 façons dont la formation Big Data peut changer votre organisation