복붙노트

[HADOOP] Hadoop 작업을 만들기 위해 mapred 또는 mapreduce 패키지를 사용하는 것이 더 좋습니까?

HADOOP

Hadoop 작업을 만들기 위해 mapred 또는 mapreduce 패키지를 사용하는 것이 더 좋습니까?

MapReduce 작업을 만들려면 이전 org.apache.hadoop.mapred 패키지 또는 매퍼 및 이퀄라이저, 작업에 대한 최신 org.apache.hadoop.mapreduce 패키지 중 하나를 사용할 수 있습니다 ... 첫 번째 것은 사용되지 않음으로 표시되었지만 되돌릴 수 있습니다. 그 동안에. 이제는 이전 맵핑 된 패키지 또는 새로운 mapreduce 패키지를 사용하여 작업을 작성하는 것이 더 나은지 그 이유가 궁금합니다. 또는 이전 매핑 된 패키지에서만 사용할 수있는 MultipleTextOutputFormat과 같은 요소가 필요한지 여부에 따라 다릅니다.

해결법

  1. ==============================

    1.기존 API (o.a.h.mapred)와 새 API (o.a.h.mapreduce) 간에는 큰 차이가 없습니다. 유일한 중요한 차이점은 레코드가 이전 API의 매퍼 / 축소기에 푸시된다는 점입니다. 새로운 API는 pull / push 메커니즘을 모두 지원합니다. 당기기 메커니즘에 대한 자세한 정보는 여기에서 얻을 수 있습니다.

    기존 API (o.a.h.mapred)와 새 API (o.a.h.mapreduce) 간에는 큰 차이가 없습니다. 유일한 중요한 차이점은 레코드가 이전 API의 매퍼 / 축소기에 푸시된다는 점입니다. 새로운 API는 pull / push 메커니즘을 모두 지원합니다. 당기기 메커니즘에 대한 자세한 정보는 여기에서 얻을 수 있습니다.

    또한 이전 API는 0.21 이후 비 사용 중단되었습니다. 새 API에 대한 자세한 내용은 여기를 참조하십시오.

    앞에서 언급 한 이유 때문에 이전 API에 충실하는 것이 좋습니다 (MultipleTextOutputFormat과 같은) 클래스 중 일부는 새 API로 마이그레이션되지 않았다고 언급했듯이 (번역은 대개 간단합니다).

  2. ==============================

    2.이전 API와 새 API 모두 좋습니다. 새로운 API는 더 깨끗합니다. 가능한 한 새로운 API를 사용하고 새 API에없는 특정 클래스 (예 : MultipleTextOutputFormat)가 필요할 때마다 이전 API를 사용하십시오.

    이전 API와 새 API 모두 좋습니다. 새로운 API는 더 깨끗합니다. 가능한 한 새로운 API를 사용하고 새 API에없는 특정 클래스 (예 : MultipleTextOutputFormat)가 필요할 때마다 이전 API를 사용하십시오.

    그러나 동일한 Mapreduce 작업에서 이전 API와 새로운 API를 혼용하지 않도록주의하십시오. 이상한 문제가 생깁니다.

  3. ==============================

    3.이전 API (매핑 됨)

    이전 API (매핑 됨)

    새로운 API (mapreduce)

  4. from https://stackoverflow.com/questions/7598422/is-it-better-to-use-the-mapred-or-the-mapreduce-package-to-create-a-hadoop-job by cc-by-sa and MIT license