Quelle est la différence fondamentale entre un Split MapReduce et un bloc HDFS?


Réponse 1:

Avant de comprendre la différence, comprenons d'abord ce qu'est un Split MapReduce et un bloc HDFS:

1) Division d'un fichier en blocs (bloc HDFS) - Lorsqu'un fichier est écrit en HDFS, HDFS divise le fichier en blocs et prend soin de sa réplication. Cette opération est effectuée une fois (principalement), puis est disponible pour tous les travaux MR exécutés sur le cluster. Il s'agit d'une configuration à l'échelle du cluster

Deuxièmement --

2) Fractionnement d'un fichier en divisions d'entrée (Split) - Lorsque le chemin d'entrée est passé dans un travail MR, le travail MR utilise le chemin ainsi que le format d'entrée configuré pour diviser les fichiers spécifiés dans le chemin d'entrée en divisions, chaque division est traité par une tâche de carte. Le calcul des répartitions d'entrée est effectué par le format d'entrée chaque fois qu'un travail est exécuté

Quelques points que je voudrais ajouter comme conclusion entre le bloc HDFS et le partage d'entrée

  1. Le fractionnement est une division logique des données d'entrée tandis que le bloc est une division physique des données d'entrée.La taille de bloc par défaut HDFS est la taille de fractionnement par défaut si le fractionnement d'entrée n'est pas spécifié.Le fractionnement est défini par l'utilisateur et l'utilisateur peut contrôler la taille du fractionnement dans son programme Map / Reduce Une division peut être mise en correspondance avec plusieurs blocs et il peut y avoir plusieurs divisions d'un même bloc. Le nombre de tâches de mappage est égal au nombre de divisions.

Réponse 2:

Bloc HDFS

1) Block est l'emplacement continu sur le disque dur où les données HDFS stockent les données. En général, FileSystem stocke les données en tant que collection de blocs. De la même manière, HDFS stocke chaque fichier sous forme de blocs et le distribue sur le cluster Hadoop.

2) C'est la représentation physique des données.

3) Taille du bloc - La taille par défaut du bloc HDFS est de 128 Mo, ce qui est configuré selon nos besoins. Tous les blocs du fichier sont de la même taille sauf le dernier bloc. Le dernier bloc peut être de même taille ou plus petit.

Mapreduce InputSplit

1) InputSplit représente les données que chaque mappeur traitera. Le fractionnement supplémentaire se divise en enregistrements. Chaque enregistrement (qui est une paire clé-valeur) sera traité par la carte.

2) C'est la représentation logique des données. Ainsi, lors du traitement des données dans le programme MapReduce ou d'autres techniques de traitement, utilisez InputSplit. Dans MapReduce, l'important est que InputSplit ne contienne pas les données d'entrée. Par conséquent, ce n'est qu'une référence aux données.

3) InputSplit size - La taille de division est approximativement égale à la taille de bloc, par défaut.


Réponse 3:

Un bloc est la façon interne dont le fichier est séparé au niveau du stockage. DataNodes stocke des blocs et les blocs représentent un fichier.

Un fractionnement est simplement la manière dont la méthode getSplits () InputFormat décide de partitionner l'entrée. Par exemple, le format d'entrée peut renvoyer 1 division pour tous les fichiers. 1 division pour chaque répertoire, 1 division pour chaque fichier, ou du fichier lui-même est divisé en plusieurs divisions pour un seul fichier.

Le calcul du fractionnement est basé sur l'heuristique et généralement ajustable car un fractionnement est une unité de parallélisme.