web-dev-qa-db-fra.com

Est-il préférable d'utiliser le package Mapred ou MapReduce pour créer un emploi Hadoop?

Pour créer des travaux MapReduce, vous pouvez utiliser l'ancien org.Apache.hadoop.mapred paquet ou le plus récent org.Apache.hadoop.mapreduce Paquet pour les mappeurs et les réducteurs, les emplois ... Le premier avait été marqué comme obsolète, mais cela a été rétabli pendant ce temps. Maintenant, je me demande s'il est préférable d'utiliser l'ancien forfait Mapred ou le nouveau package MapReduce pour créer un emploi et pourquoi. Ou est-il juste dépendant de la question de savoir si vous avez besoin de choses comme le multiplatextOutputPormat qui est uniquement disponible dans l'ancien package Mapred?

45
momo13

Fonctionnalité sage Il n'y a pas beaucoup de différence entre l'ancien (o.a.h.mapred) et le nouveau (o.a.h.mapreduce) API. La seule différence significative est que les enregistrements sont poussés sur le mappeur/réducteur dans l'ancienne API. Alors que la nouvelle API prend en charge le mécanisme de tirage/poussée. Vous pouvez obtenir plus d'informations sur le mécanisme de tirage ici .

En outre, l'ancienne API a été non obsolète depuis 0,21. Vous pouvez trouver plus d'informations sur la nouvelle API ici .

Comme vous avez mentionné certaines des classes (comme MultipletextextOutputPormat) n'ont pas été migrées vers la nouvelle API, en raison de la raison et de la raison mentionnée ci-dessus, il est préférable de rester à l'ancienne API (bien qu'une traduction soit généralement assez simple).

43
Praveen Sripati

Les anciennes et les nouvelles API sont bonnes. La nouvelle API est plus propre cependant. Utilisez la nouvelle API où vous pouvez et utilisez l'ancien où vous avez besoin de classes spécifiques qui ne sont pas présentes dans la nouvelle API (comme MultipleTextOutputFormat)

Mais veillez à ne pas utiliser de mélange des anciennes et de nouvelles API dans le même emploi MapReduce. Cela conduit à des problèmes étranges.

14
Hari Menon

Old API (Mapred)

  1. Existe dans l'emballage org.apache.hadoop.mapred

  2. Fournissez une carte de carte/réduisez la configuration du travail.

  3. Réduit les valeurs d'une clé donnée, basée sur l'itérateur
  4. Paquet Résumé

Nouvelle API (Mapreduce)

  1. Existe dans l'emballage org.apache.hadoop.mapreduce

  2. La configuration du travail est effectuée par classe distincte, appelée Jobconf qui est une extension de la configuration.
    Classer

  3. Réduit les valeurs d'une clé donnée, basée sur le démonteur

  4. Résumé du paquet

2
anish