2013-06-08 2 views
5

MapReduce 프로그램의 입력으로 HDFS에 각각 1MB의 텍스트 파일 2 개가 저장되어 있습니다. 다음 줄에서 우리는 map()에 대한 입력 쌍을 고려합니다.지도()에 대한 LongWritable 키 입력이란 무엇입니까?

class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> { 

여기에 LongWritable 키가 무엇입니까? MapReduce는 어떻게 생각합니까? 입력 파일의 각 텍스트 줄에 키가 있거나 파일의 전체 텍스트 (예 : 한 번에 모든 줄)로 간주되는 단일 키입니까?

답변

-1

는 그것은 바이트 라인의 오프셋 또는 당신은 줄 번호

+1

답변의 '또는'부분을 건너 뛰어야합니다. offset은 라인 번호가 아닙니다. 그것은 라인의 바이트 위치입니다. – Tariq

+0

나는 이것을 얻지 못하고있다. 어떻게 라인의 오프셋이 그 라인의 수와 같은가? 나는 이것을 이해하는데 당신을 도와 줄 것을 요청할 것입니다. – Tariq

+0

@ChrisGerken 틀림 번호가 – slater

6

1 여기 LongWritable 키 파일에서 해당 라인의 positionnot 행 번호를 의미 라인의 offset입니다 말할 수 있습니다. 차이가있는 a lot이 있습니다.

2 MapReduce 프레임 워크에서 not assumed입니다. 그것을 결정하기 위해 MR 업무에서 사용하고있는 InputFormat의 의무입니다. 기본값은 TextInputFormat이며,이 경우 줄의 바이트 오프셋을 키로 사용합니다.

3 글쎄, 다시 한번 InputFormat에 의존한다. TextInputFormat을 사용하는 경우 각 행은 해당 오프셋을 키로 사용하여 값으로 처리됩니다. 하지만 사용자 정의 InputFormat을 사용하여 전체 파일과 해당 파일의 모든 행에 대해 하나의 키만 제공 할 수 있습니다.

+1

입니다. 분명히 번호가 아닙니다. 내가 downvote에 대한 이유가있을 수 있습니까? IMHO, 올바른 정의, 내가 mapreduce에 대해 배운 것을 기반으로. 또한, 당신이 언급하고있는 문서를 가르쳐 주시겠습니까? 나는 정말로 그것을 고맙게 생각할 것이다. 고맙습니다. – Tariq

관련 문제