2010-12-08 7 views
3

Hadoop MapReduce 앱용 사용자 정의 (서비스) 입력 소스를 구현해야합니다. 나는 google'd 및 SO'd를 수행하여 진행할 한 가지 방법은 사용자 정의 InputFormat을 구현하는 것임을 알았습니다. 그 맞습니까?Hadoop MapReduce InputFormat 사용되지 않으셨습니까?

분명히 http://hadoop.apache.org/common/docs/r0.20.2/api/org/apache/hadoop/mapred/InputFormat.html에 따라 InputFormat의 getRecordReader() 및 getSplits() 메소드는 사용되지 않습니다. 대체 뭐야? 하둡의 단어 수의 예를 여전히 같은 사용

...

+0

문제는 실제로 버전 사이에 있습니다. '0.20.2' (최신 안정 릴리스)의 문제점 중 상당 부분은 버전 내 교체없이 기능을 명시 적으로 더 이상 사용하지 않는 것입니다. 이는'MultipleOutputs'과'org.apache.hadoop.mapred'의 거의 전부입니다. 이것은 제가 따라 왔던 API의 주요 구조 조정을 나타내는 것 같습니다. (충분한 출처 정보를 컴파일하고 나면 곧 답변을 얻을 것입니다.) – MrGomez

답변

2

the documentation:

되지 않는 인터페이스

...

org.apache.hadoop.mapred.InputFormat

에서

사용 InputFormat inste 광고.

는 ... 때문에 0.20.2와 이상한 중단 행동과 인터페이스를 비하 한 후 구현을 사용하는 경우에도 괴상 제안에

, 나는 좀 더 깊이 파고. 이 인터페이스는 여전히 사용되지 않는 태그가 제거 된 0.21.0에 있습니다. 나는이 글을 쓰던 당시 트렁크에서 비슷한 인터페이스를 찾을 수 없었다.

+0

감사합니다. 사용자 정의 InputFormat을 구현했으며 0.21.0을 "알기를"기쁘게 생각합니다. : D – Sri

+0

@Srirangan 도와 드리겠습니다! – MrGomez

5

Hadoop은 여전히지도 된 패키지의 내용을 내부적으로 사용하지만 사용자의 관점에서 볼 때 거의 모두 폐기 된 것으로 간주되어야합니다. Hadoop은 문서화에 관해서는 극단적으로 부족하며 예제는 모두 구식이되는 경향이 있습니다. 다행스럽게도 실제로 스택 오버 플로우가있을 때

+0

+1 통찰력. 문서가 부족하고 _consistent_ API가 부족하여 다소 실망 스럽습니다. – MrGomez

4

무슨 일이 있었는지, 0.20에서는 mapred 클래스를 사용 중지하고 새로운 API를 도입했습니다. 그러나 새 API에는 핵심 기능이 거의 없었으므로 최신 API에서는 오래된 API가 '사용되지 않음'으로 표시되었습니다. 오래된 API를 사용하는 것이 가장 좋습니다.

관련 문제