2010-04-09 8 views
3

내 감속기 클래스는 TextOutputFormat (Job이 제공 한 기본 OutputFormat)을 사용하여 출력을 생성합니다. 필자는 MapReduce 작업이 완료된 후이 출력을 소비하여 출력을 집계하는 것을 좋아합니다. 이 외에도, 나는이 프로세스의 출력이 MapReduce 작업의 다음 반복에 의해 소비 될 수 있도록 TextInputFormat을 사용하여 집계 된 정보를 작성하고 싶다. 누구든지 &을 TextFormat으로 작성하는 방법에 대한 예제를 제공 할 수 있습니까? 그건 그렇고, 내가 왜 TextFormat, 오히려 시퀀스를 사용하는 이유는 상호 운용성이다. 모든 소프트웨어에서 출력을 사용해야합니다.Hadoop 0.2 : TextOutputFormat의 출력을 읽는 방법?

답변

5

아직 시퀀스 파일을 제외하지 마십시오. MapReduce 작업을 빠르고 쉽게 연결할 수 있으며, "hadoop fs -text 파일 이름"을 사용하여 다른 작업을 위해 필요할 경우 텍스트 형식으로 출력 할 수 있습니다.

원래 질문으로 돌아가서 TextInputFormat을 Job의 입력 형식으로 설정 한 다음 TextInputFormat.setInputPaths을 사용하여 입력으로 사용해야하는 파일을 지정하십시오. 매퍼에 대한 키는 LongWritable이어야하며 값은 텍스트 여야합니다.

TextOutputFormat을 출력으로 사용하려면 작업의 출력 형식으로 설정하고 TextOuputFormat.setOutputPath을 사용하여 출력 경로를 지정하십시오. 귀하의 감속기 (또는 맵 전용 작업 인 경우 맵퍼)는 출력 키의 유형으로 NullWritable을 사용하여 한 줄에 하나씩 값의 텍스트 표현을 얻거나 그렇지 않으면 각 행이 키와 값은 탭으로 구분됩니다 (기본적으로 "mapred.textoutputformat.separator"을 다른 구분 기호로 설정하여 변경할 수 있습니다).

관련 문제