2016-05-31 3 views
0

파일이 HDFS에 저장되는 동안 이름 노드별로 블록으로 분할된다는 사실을 알고 있습니다. 그러나 파일이 분할되면 블록에 행의 일부가 포함될 가능성이 있습니다. 내 이해가 맞습니까? 그래서 만약 내가 각 라인을 읽을 필요가지도 작업을해야합니다 매퍼에 의해 처리하는 라인의 일부를 그리워합니다.네임 노드 파일을 블록으로 나눕니다.

감사합니다.

답변

0

예, 한 줄을 두 개의 블록으로 분할 할 수 있습니다. 블록 끝의 맵퍼에서 사용하는 Reader는 다음 블록의 첫 번째 행을 읽고 처리합니다. 첫 번째 블록이 아닌 경우 판독기는 항상 첫 번째 행을 건너 뜁니다. 적어도 텍스트 파일. 다른 형식은 다른 방식으로 작동합니다.

당신은 @ RojoSam의 대답에 라인 또한

1

의 어떤 부분을 놓치지 않습니다, SPLIT_SLOP 매개 변수는 다른 블록에서 하나의 파일의 데이터를 읽어 RecordReader에 의해 사용된다. SPLIT_SLOP은 단일 데이터 노드에서 데이터를 완전히 사용할 수없는 경우 원격 호스트에서 % of of data를 읽도록 hadoop 작업을 제공합니다.

관련 문제