Question

Quelqu'un peut-il expliquer comment fonctionne MapReduce avec Cassandra 0,6? Je l'ai lu à travers l'exemple de nombre de mots, mais je ne suis pas tout à fait ce qui se passe sur la fin Cassandra par rapport à la fin « client ».

https://svn.apache.org/repos/asf / cassandra / trunk / contrib / word_count /

Par exemple, disons que je suis en utilisant Python et Pycassa, comment pourrais-je charger une nouvelle carte réduire la fonction, puis appeler? Est-ce que ma carte réduire la fonction doivent être java qui est installé sur le serveur cassandra? Si oui, comment puis-je l'appelle de Pycassa?

Il a mentionné aussi Pig faire tout cela plus facile, mais je suis un noob complet Hadoop, ce qui n'a pas vraiment l'aide.

Votre réponse peut utiliser Thrift ou autre chose, je l'ai mentionné tout Pycassa pour désigner le côté client. Je suis juste essayer de comprendre la différence entre ce qui fonctionne dans le cluster Cassandra par rapport au serveur réel qui rend les requêtes.

Était-ce utile?

La solution

D'après ce que j'ai entendu (et de ), la façon dont un développeur écrit un programme MapReduce qui utilise Cassandra comme source de données est la suivante. Vous écrivez un programme MapReduce régulier (l'exemple que vous avez lié à est pour la version Java pure) et les pots qui sont maintenant disponibles fournissent une CustomInputFormat qui permet à la source d'entrée à Cassandra (au lieu de la valeur par défaut, qui est Hadoop).

Si vous utilisez Pycassa je dirais que vous êtes hors de la chance jusqu'à ce que soit (1) le responsable de ce projet ajoute le support pour MapReduce ou (2) vous lancez certaines fonctions Python ensemble que écrire un programme Java MapReduce et l'exécuter. Ce dernier est sans aucun doute un peu un hack mais je vous lever et aller.

Autres conseils

Il est au courant de la localité; de la Cassandra inputFormat les getLocations () pour préserver la localité des données

La victoire d'utiliser une InputFormat directe de Kassandra est que les flux les données de manière efficace, ce qui est une victoire très importante. Chaque fraction d'entrée couvre une gamme de jetons et roule le disque à sa pleine bande passante: pas la recherche, pas complexe interrogation. Je ne pense pas qu'il connaît la localité -. Pour que chaque TaskTracker préfèrent splits entrée d'un processus de cassandra sur le même noeud

Vous pouvez essayer d'utiliser la méthode de porc avec STREAM comme un hack jusqu'à ce que le soutien continu Hadoop plus direct est en place.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top