Maison Problème commun Comment s'appelle le processus de tri effectué par le système ?

Comment s'appelle le processus de tri effectué par le système ?

Apr 25, 2021 pm 05:10 PM
hadoop shuffle

MapReduce garantit que l'entrée de chaque réducteur est triée par clé, et le processus de tri effectué par le système est appelé shuffle. La phase de lecture aléatoire comprend principalement la combinaison, le groupe, le tri, la partition dans la phase de cartographie et le tri par fusion dans la phase de réduction.

Comment s'appelle le processus de tri effectué par le système ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, ordinateur Dell G3.

MapReduce garantit que l'entrée de chaque réducteur est triée par clé, et le processus de tri effectué par le système est appelé shuffle. Nous pouvons le comprendre comme l'ensemble du projet dans lequel la carte génère une sortie et digère les entrées pour les réduire.

Côté carte : chaque mapperTask dispose d'un tampon mémoire en anneau utilisé pour stocker la sortie de la tâche map. Une fois le seuil atteint, un thread d'arrière-plan écrit le contenu dans un nouveau fichier d'écriture de débordement dans le répertoire spécifié sur le. disk. , partition, sort et combineur doivent être transmis avant d’écrire sur le disque. Une fois le dernier enregistrement écrit, fusionnez tous les fichiers écrits en débordement en un seul fichier partitionné et trié.

Côté réduction : peut être divisé en étape de copie, étape de tri, étape de réduction

Étape de copie : le fichier de sortie de la carte est situé sur le disque local du tracker de tâches exécutant la tâche de carte et réduit les résultats la sortie via http Pour la partition du fichier, tasktracker exécute la tâche de réduction pour le fichier de partition. Tant qu'une tâche de mappage est terminée, la tâche de réduction commence à copier la sortie.

Phase de tri : Un terme plus approprié est la phase de fusion, car le tri est effectué côté carte. Cette étape fusionnera la sortie de la carte, conservera son ordre et effectuera une boucle.

L'étape finale est l'étape de réduction. La fonction de réduction est appelée pour chaque clé de la sortie triée. La sortie de cette étape est écrite directement dans le système de fichiers de sortie, généralement HDFS. ,

Description de la phase de mélange

La phase de mélange comprend principalement la combinaison, le groupe, le tri, la partition de la phase de carte et le tri par fusion de la phase de réduction. Après la lecture aléatoire à l'étape Map, les données de sortie seront enregistrées dans des fichiers en fonction des partitions réduites et le contenu des fichiers sera trié selon le tri défini. Une fois la phase de cartographie terminée, l'ApplicationMaster sera informé, puis l'AM demandera à la réduction d'extraire les données et effectuera le processus de lecture aléatoire du côté réduction pendant le processus d'extraction.

Remarque : les données de sortie de l'étape Map sont stockées sur le disque exécutant le nœud Map. Il s'agit d'un fichier temporaire et n'existe pas sur HDFS. Une fois que Réduire a extrait les données, le fichier temporaire sera supprimé. S'il existe sur HDFS, il sera supprimé. Cela entraîne une perte d'espace de stockage (trois copies seront générées).

  • Combiner défini par l'utilisateur

    Combiner peut réduire le nombre de résultats de sortie intermédiaires dans l'étape Map et réduire la surcharge du réseau. Par défaut, il n'y a pas de Combiner. Le Combiner défini par l'utilisateur doit être une sous-classe de Réducteur. La sortie de la Map est utilisée comme entrée pour dire, l'entrée et la sortie du Combiner doivent être identiques.

    Vous pouvez définir la classe de traitement du combinateur via job.setCombinerClass. Le framework MapReduce ne garantit pas que la méthode de cette classe sera appelée.

    Remarque : Si l'entrée et la sortie de réduire sont les mêmes, vous pouvez directement utiliser la classe de réduction comme combinateur

  • Partitionneur défini par l'utilisateur

    Le partitionneur est utilisé. Déterminez quel nœud est le réducteur de traitement correspondant à la sortie Le nombre de réduction par défaut de la tâche MapReduce est 1. À l'heure actuelle, le partitionneur n'a aucun effet. Cependant, lorsque nous modifions le nombre de réduction en multiple, le partitionneur déterminera le numéro de nœud de la réduction correspondant à la clé (en commençant à 0). ).

    Vous pouvez spécifier la classe Partitioner via la méthode job.setPartitionerClass Par défaut, HashPartitioner est utilisé (la méthode hashCode de key est appelée par défaut).

  • Groupe défini par l'utilisateur

    GroupingComparator est utilisé pour regrouper la sortie de Map dans > La classe, pour le dire franchement, est utilisée pour déterminer si key1 et key2 appartiennent au même groupe. S'il s'agit du même groupe, les valeurs de sortie de la carte sont combinées.

    Nécessite que notre classe personnalisée implémente l'auto-interface RawComparator, et la classe de comparaison peut être spécifiée via la méthode job.setGroupingComparatorClass. Par défaut, WritableComparator est utilisé, mais la méthode compareTo de la clé est finalement appelée à des fins de comparaison.

  • Tri défini par l'utilisateur

    SortComparator est la classe de clé utilisée pour trier la sortie à quel groupe key1 appartient et à quel groupe key2 appartient vient en premier et lequel vient en dernier.

    Nécessite que notre classe personnalisée implémente l'auto-interface RawComparator, et la classe de comparaison peut être spécifiée via la méthode job.setSortComparatorClass. Par défaut, WritableComparator est utilisé, mais la méthode compareTo de la clé est finalement appelée à des fins de comparaison.

  • Mélange du réducteur défini par l'utilisateur

    Lorsque le côté réduction extrait les données de sortie de la carte, un mélange (tri par fusion) sera effectué et le cadre MapReduce est fourni en mode plug-in De manière personnalisée, nous pouvons spécifier des règles de lecture aléatoire personnalisées en implémentant l'interface ShuffleConsumerPlugin et en spécifiant le paramètre mapreduce.job.reduce.shuffle.consumer.plugin.class, mais en général, la classe org par défaut est utilisée directement .apache.hadoop.mapreduce.task.reduce.Shuffle.

Pour plus de connaissances sur la programmation, veuillez visiter : Vidéo de programmation ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Erreurs Java : erreurs Hadoop, comment les gérer et les éviter Erreurs Java : erreurs Hadoop, comment les gérer et les éviter Jun 24, 2023 pm 01:06 PM

Erreurs Java : erreurs Hadoop, comment les gérer et les éviter Lorsque vous utilisez Hadoop pour traiter des données volumineuses, vous rencontrez souvent des erreurs d'exception Java, qui peuvent affecter l'exécution des tâches et provoquer l'échec du traitement des données. Cet article présentera quelques erreurs Hadoop courantes et fournira des moyens de les gérer et de les éviter. Java.lang.OutOfMemoryErrorOutOfMemoryError est une erreur provoquée par une mémoire insuffisante de la machine virtuelle Java. Quand Hadoop est

Java utilise la fonction shuffle() de la classe Collections pour perturber l'ordre des éléments de la collection. Java utilise la fonction shuffle() de la classe Collections pour perturber l'ordre des éléments de la collection. Jul 24, 2023 pm 10:25 PM

Java utilise la fonction shuffle() de la classe Collections pour perturber l'ordre des éléments dans la collection. Dans le langage de programmation Java, la classe Collections est une classe d'outils qui fournit diverses méthodes statiques pour gérer les collections. L'une d'elles est la fonction shuffle(), qui peut être utilisée pour modifier l'ordre des éléments dans une collection. Cet article montre comment utiliser cette fonction et fournit des exemples de code correspondants. Tout d’abord, nous devons importer la classe Collections dans le package java.util,

Utilisation de Hadoop et HBase dans Beego pour le stockage et les requêtes Big Data Utilisation de Hadoop et HBase dans Beego pour le stockage et les requêtes Big Data Jun 22, 2023 am 10:21 AM

Avec l'avènement de l'ère du Big Data, le traitement et le stockage des données sont devenus de plus en plus importants, et la gestion et l'analyse efficaces de grandes quantités de données sont devenues un défi pour les entreprises. Hadoop et HBase, deux projets de la Fondation Apache, proposent une solution de stockage et d'analyse du Big Data. Cet article explique comment utiliser Hadoop et HBase dans Beego pour le stockage et les requêtes Big Data. 1. Introduction à Hadoop et HBase Hadoop est un système informatique et de stockage distribué open source qui peut

Comment utiliser PHP et Hadoop pour le traitement du Big Data Comment utiliser PHP et Hadoop pour le traitement du Big Data Jun 19, 2023 pm 02:24 PM

Alors que la quantité de données continue d’augmenter, les méthodes traditionnelles de traitement des données ne peuvent plus relever les défis posés par l’ère du Big Data. Hadoop est un cadre informatique distribué open source qui résout le problème de goulot d'étranglement des performances causé par les serveurs à nœud unique dans le traitement du Big Data grâce au stockage distribué et au traitement de grandes quantités de données. PHP est un langage de script largement utilisé dans le développement Web et présente les avantages d'un développement rapide et d'une maintenance facile. Cet article explique comment utiliser PHP et Hadoop pour le traitement du Big Data. Qu'est-ce que HadoopHadoop ?

Explorez l'application de Java dans le domaine du big data : compréhension de Hadoop, Spark, Kafka et d'autres piles technologiques Explorez l'application de Java dans le domaine du big data : compréhension de Hadoop, Spark, Kafka et d'autres piles technologiques Dec 26, 2023 pm 02:57 PM

Pile technologique Java Big Data : Comprendre l'application de Java dans le domaine du Big Data, comme Hadoop, Spark, Kafka, etc. Alors que la quantité de données continue d'augmenter, la technologie Big Data est devenue un sujet brûlant à l'ère d'Internet d'aujourd'hui. Dans le domaine du big data, on entend souvent les noms de Hadoop, Spark, Kafka et d’autres technologies. Ces technologies jouent un rôle essentiel et Java, en tant que langage de programmation largement utilisé, joue également un rôle majeur dans le domaine du Big Data. Cet article se concentrera sur l'application de Java en général

Quelles fonctions sont utilisées en PHP pour mélanger aléatoirement un tableau ? Quelles fonctions sont utilisées en PHP pour mélanger aléatoirement un tableau ? May 01, 2024 pm 10:15 PM

Il existe les fonctions suivantes en PHP qui peuvent mélanger un tableau de manière aléatoire : shuffle() modifie directement l'ordre des éléments du tableau. array_rand() renvoie une clé aléatoire, qui peut réorganiser l'ordre du tableau en fonction de la clé.

Comment changer automatiquement le fond d'écran sur iPhone Comment changer automatiquement le fond d'écran sur iPhone May 04, 2023 am 11:55 AM

Comment utiliser PhotoShuffle pour changer automatiquement les fonds d'écran sur iPhone Dans la mise à jour iOS 16, vous pouvez utiliser la fonction Photo Shuffle pour appliquer des fonds d'écran qui changent automatiquement à vos intervalles favoris. Bien que sa fonctionnalité reste la même, cette fonctionnalité peut être utilisée de deux manières différentes : l'une en utilisant une photo sélectionnée et l'autre en utilisant une photo que vous sélectionnez manuellement dans votre galerie. Les deux options sont accessibles lors de l'application d'un fond d'écran directement depuis l'écran de verrouillage ou à l'aide de l'application Paramètres. Le moyen le plus simple d’appliquer un nouveau fond d’écran consiste à utiliser l’écran de verrouillage. Tout d’abord, utilisez FaceID pour déverrouiller votre téléphone, mais n’accédez pas encore à l’écran d’accueil. Pour ce faire, appuyez simplement sur le bouton latéral, faites face à votre iPhone et déverrouillez l'écran de verrouillage.

Comment installer Hadoop sous Linux Comment installer Hadoop sous Linux May 18, 2023 pm 08:19 PM

1 : Installez JDK1. Exécutez la commande suivante pour télécharger le package d'installation de JDK1.8. wget--no-check-certificatehttps://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-x64.tar.gz2 Exécutez la commande suivante pour décompresser le package d'installation JDK1.8 téléchargé. . tar-zxvfjdk-8u151-linux-x64.tar.gz3 Déplacez et renommez le package JDK. mvjdk1.8.0_151//usr/java84. Configurez les variables d'environnement Java. écho'