title: How does Hadoop process records split across block boundaries?
body: <p>According to the <code>Hadoop - The Definitive Guide</code></p>
  
  <blockquote>
    <p>The logical records that FileInputFormats define do not usually fit neatly into HDFS blocks. For example, a TextInputFormat’s logical records are lines, which will cross HDFS boundaries more often than not. This has no bearing on the functioning of your program—lines are not missed or broken, for example—but it’s worth knowing about, as it does mean that data-local maps (that is, maps that are running on the same host as their input data) will perform some remote reads. The slight overhead this causes is not normally significant.</p>
  </blockquote>
  
  <p>Suppose a record line is split across two blocks (b1 and b2). The mapper processing the first block (b1) will notice that the last line doesn't have a EOL separator and fetches the remaining of the line from the next block of data (b2).</p>
  
  <p>How does the mapper processing the second block (b2) determine that the first record is incomplete and should process starting from the second record in the block (b2)?</p>