HBase
 sql >> Base de données >  >> NoSQL >> HBase

Hadoop RecordReader Introduction de travail et types

Dans notre blog précédent, nous avons étudié Hadoop Compteurs en détail. Maintenant, dans ce tutoriel, nous allons discuter de la RecordReader dans Hadoop.

Ici, nous allons couvrir l'introduction de Hadoop RecordReader, travail de RecordReader. Nous allons également discuter des types de RecordReader dans MapReduce, la taille du seul enregistrement dans Hadoop MapReduce dans ce tutoriel MapReduce.

Qu'est-ce que RecordReader dans MapReduce?

Un RecordReader convertit l'affichage orienté octet de l'entrée à une vue orientée enregistrement pour la Mapper et Réducteur tâches de traitement.

Pour comprendre Hadoop RecordReader, nous devons comprendre MapReduce Dataflow. Sachons les flux de données:

MapReduce est un modèle simple de traitement des données. Entrées et sorties pour la carte et réduire les fonctions sont paires clé-valeur . Voici la forme générale de la carte et réduire les fonctions:

  • Carte: (K1, V1) → liste (K2, V2)
  • Réduire: (K2, liste (V2)) → liste (K3, V3)

Maintenant, avant d'entamer le processus, il a besoin de savoir sur quelles données à traiter. Ainsi, InputFormat classe aide à atteindre cet objectif. Cette classe sélectionne le fichier HDFS qui est l'entrée à la fonction de la carte. Il est également responsable de la création des divisions d'entrée.

En outre, les diviser en dossiers. Elle divise les données dans le nombre de divisions (typiquement 64/128) dans HDFS. Ceci est connu comme InputSplit. InputSplit est la représentation logique des données. Dans un travail de MapReduce, numéro d'exécution des tâches de carte est égal au nombre de InputSplits.

En appelant getSplit () le client calcule le grand écart pour le travail. Ensuite, il a envoyé au maître d'application. Il utilise leurs emplacements de stockage à des tâches de carte de calendrier qui les traitera sur le cluster.

Après cette tâche de carte passe la scission au createRecordReader () méthode. De cela, il obtient RecordReader pour la scission. RecordReader génère fiche (paire de valeurs de clé). Ensuite, il passe à la fonction de la carte.

Hadoop RecordReader dans l'exécution des tâches MapReduce utilise les données dans les limites qui sont créés par le inputsplit. Et il crée alors paires clé-valeur pour le cartographe. Le « départ » est la position d'octet dans le fichier.

Au début, Hadoop RecordReader commence à générer des paires clé / valeur. La « fin » est l'endroit où s'arrête RecorReader la lecture des enregistrements. En RecordReader, les données sont chargées de sa source.

Ensuite, les données sont converties en paires clé-valeur appropriée à la lecture par le mappeur. Il communique avec le inputsplit jusqu'à ce que la lecture de fichiers ne soit pas terminé.

Comment fonctionne RecorReader dans Hadoop?

Il est plus que itérateur sur les dossiers. La tâche carte utilise un enregistrement pour générer paire clé-valeur qui passe à la fonction de la carte. On peut aussi voir cela en utilisant la fonction d'exécution du mappeur ci-dessous:

public void run(Context context ) throws IOException, InterruptedException{
setup(context);
while(context.nextKeyValue())
{
map(context.setCurrentKey(),context.getCurrentValue(),context)
}
cleanup(context);
}

Bien qu'il ne soit pas obligatoire pour RecordReader aux séjours entre les limites créées par le inputsplit pour générer des paires clé-valeur il généralement des séjours. En outre, la mise en œuvre personnalisée peut même lire plus de données en dehors de la inputsplit.

Puis, après l'exécution de setup () , NextKeyValue () répétera le contexte. Ce renseigne les objets clés et la valeur pour le cartographe. A titre de contexte, le cadre récupère la valeur clé du lecteur enregistrement. Passez ensuite à la carte () méthode pour faire son travail.

Par conséquent, l'entrée (valeur de clé) pour les processus fonctionnels de la carte que par la logique mentionné dans le code de la carte. Lorsque l'enregistrement arrive à la fin de l'enregistrement, NextKeyValue () méthode retourne false.

Types de Hadoop RecordReader

InputFormat définit l'instance de RecordReader, dans Hadoop. Par défaut, en utilisant TextInputFormat ReordReader convertit les données en paires de valeurs de clé. TextInputFormat fournit également 2 types de RecordReaders qui suit comme:

1. LineRecordReader

Il est le RecordReader par défaut. TextInputFormat fournit ce RecordReader. Il traite également chaque ligne du fichier d'entrée comme la nouvelle valeur. Ensuite, la clé associée est l'octet de décalage. Il saute toujours la première ligne de la scission (ou une partie de celui-ci), si elle n'est pas la première division.

Il lit toujours une ligne après la limite de la division à la fin (si les données sont disponibles, il est donc pas le dernier split).

2. SequenceFileRecordReader

Ce Hadoop RecorReader lit les données spécifiées par l'en-tête d'un fichier de séquence.

La taille maximale du seul enregistrement

En utilisant le paramètre ci-dessous nous avons mis en valeur maximale.

conf.setInt("mapred.linerecordreader.maxlength", Integer.MAX_VALUE);

Conclusion

En conclusion, Hadoop RecorReader crée l'entrée (clé-valeur) à Mapper. Il utilise également TextInputFormat pour convertir des données dans la paire de clés de valeur.

J'espère que vous avez aimé ce blog si vous avez toute question relative à Hadoop RecordReader, ne hésitez pas à partager avec nous. Nous serons heureux de les résoudre.