2010-02-17 5 views
0

Quel est le système de programmation réduit de carte distribué le plus facile à utiliser?Quel est le système de programmation réduit de carte distribué le plus facile à utiliser?

Par exemple. dans un magasin de données distribué contenant de nombreux utilisateurs, chacun avec beaucoup de connexions, je voulais dire compter le nombre total de connexions:

Map: 
for all records of type "user" 
do for each user 
    count number of connections 
    retrun connection_count_for_one_user 

Reduce: 
reduce (connection_count_for_one_user) 
    total_connections += connection_count_for_one_user 

est-il un système de MapReduce qui me permet de programmer de cette façon?

+0

Comme c'est le cas maintenant, votre question n'a aucun sens. – leeeroy

+0

Merci Leeroy. J'ai essayé de le rendre plus clair maintenant. Est-ce mieux? Ou que puis-je faire pour l'améliorer? – Zubair

Répondre

2

Eh bien, je vais essayer de faire quelques suggestions, mais votre question n'est pas trop claire.

Alors, comment stockez-vous vos données? Le mécanisme de stockage est distinct de la façon dont vous appliquez les algorithmes MapReduce aux données. Je vais supposer que vous utilisez le Hadoop Distributed File System.

Le problème que vous illustrez ressemble en fait à celui de Hadoop MapReduce word count example. Au lieu de mots, vous comptez simplement les utilisateurs à la place.

Certaines des options que vous avez pour l'application MapReduce aux données stockées sur un HDFS sont:

  • Java framework - bien si vous êtes à l'aise avec Java.
  • Pig - un langage de script de haut niveau.
  • Hive - une solution d'entreposage de données pour Hadoop qui fournit une interface de type SQL.
  • Hadoop streaming - vous permet d'écrire des mappeurs et des réducteurs dans pratiquement toutes les langues.

Lequel est le plus facile?

Bien que tout dépend de ce que vous vous sentez à l'aise. Si vous connaissez Java, jetez un oeil à la structure Java standard. Si vous êtes habitué aux langages de script, vous pouvez utiliser Pig ou le streaming. Si vous connaissez SQL, vous pouvez jeter un oeil à l'utilisation de Hive QL pour interroger le HDFS. Je regarderais la documentation de chacun comme point de départ.

+0

Ok, merci, je vais jeter un oeil à ces – Zubair

+0

Hive et Pig semblent prometteurs! – Zubair