による Hadoop - The Definitive Guide
FileInputFormatsが定義する論理レコードは、通常、HDFSブロックにきちんと適合しません。たとえば、TextInputFormatの論理レコードは線であり、HDFSの境界を越える頻度が高くなります。これは、プログラムの機能には影響しません。たとえば、行が失われたり壊れたりすることはありません。ただし、データローカルマップ(つまり、ローカルの同じホストで実行されているマップ)入力データ)は、いくつかのリモート読み取りを実行します。これが引き起こすわずかなオーバーヘッドは、通常は重要ではありません。
レコード行が2つのブロック(b1とb2)に分割されているとします。最初のブロック(b1)を処理するマッパーは、最後の行にEOLセパレータがないことに気づき、次のデータブロック(b2)から行の残りをフェッチします。
2番目のブロック(b2)を処理するマッパーは、最初のレコードが不完全であり、ブロック(b2)の2番目のレコードから処理を開始する必要があるとどのように判断しますか?
LineReader.readLine
関数で処理されることを言及する価値があります。それはあなたの質問には関係ないと思いますが、必要に応じて詳細を追加できます。