에 따르면 Hadoop - The Definitive Guide
FileInputFormats가 정의하는 논리적 레코드는 일반적으로 HDFS 블록에 깔끔하게 맞지 않습니다. 예를 들어, TextInputFormat의 논리 레코드는 HDFS 경계를 더 자주 교차하는 라인입니다. 이것은 프로그램의 기능에 아무런 영향을 미치지 않습니다. 예를 들어 선이 누락되거나 끊어지지는 않습니다. 그러나 데이터 로컬 맵 (즉, 동일한 호스트에서 실행되는 맵 입력 데이터)는 일부 원격 읽기를 수행합니다. 이로 인해 발생하는 약간의 오버 헤드는 일반적으로 중요하지 않습니다.
레코드 라인이 두 블록 (b1 및 b2)으로 분할되었다고 가정합니다. 첫 번째 블록 (b1)을 처리하는 매퍼는 마지막 줄에 EOL 구분 기호가 없음을 인식하고 다음 데이터 블록 (b2)에서 나머지 줄을 가져옵니다.
두 번째 블록 (b2)을 처리하는 매퍼는 첫 번째 레코드가 불완전하며 블록 (b2)의 두 번째 레코드부터 처리해야한다고 어떻게 결정합니까?
LineReader.readLine
함수 에서 처리된다는 점을 언급 할 가치가 있습니다. 질문과 관련이 없다고 생각하지만 필요한 경우 더 많은 세부 정보를 추가 할 수 있습니다.