Selon le Hadoop - The Definitive Guide
Les enregistrements logiques définis par FileInputFormats ne s'intègrent généralement pas parfaitement dans les blocs HDFS. Par exemple, les enregistrements logiques d'un TextInputFormat sont des lignes qui traverseront le plus souvent les limites HDFS. Cela n'a aucune incidence sur le fonctionnement de votre programme - les lignes ne sont ni manquées ni interrompues, par exemple - mais cela vaut la peine de le savoir, car cela signifie que les mappages locaux de données (c'est-à-dire les mappes qui s'exécutent sur le même hôte que leur données d'entrée) effectuera des lectures à distance. La légère surcharge que cela entraîne n'est normalement pas significative.
Supposons qu'une ligne d'enregistrement soit divisée en deux blocs (b1 et b2). Le mappeur traitant le premier bloc (b1) remarquera que la dernière ligne n'a pas de séparateur EOL et récupère le reste de la ligne du bloc de données suivant (b2).
Comment le mappeur traitant le deuxième bloc (b2) détermine-t-il que le premier enregistrement est incomplet et doit traiter à partir du deuxième enregistrement dans le bloc (b2)?
LineReader.readLine
fonction, je ne pense pas que cela soit pertinent pour votre question mais peut ajouter plus de détails si nécessaire.