Je suis nouveau à mongodb, j'utilise la carte / réduit. Quelqu'un peut-il me dire comment déboguer lors de l'utilisation de la carte / réduisez-vous? J'ai utilisé "Imprimer ()" Fonction mais sur la coquille MongoDb, rien n'est imprimé. Voici ma fonction de réduction:
var reduce = function(key, values){ var result = {count: 0, host: ""}; for(var i in values){ result.count++; result.host = values[i].host; print(key+" : "+values[i]); } return result; }
3 Réponses :
Il semble que Vous pouvez spécifier le fichier journal à l'aide d'un impression () code> Les instructions de réduction des fonctions sont écrites dans le fichier journal, plutôt que la coquille. Vérifiez donc votre fichier journal pour votre sortie de débogage. P>
- logpath D: \ chemin \ to \ log.txt code> paramètre lors du démarrage du processus Mongod. P>
Le fichier journal de Linux est situé dans /var/log/mongodb/mongodb.log.
Mac OS: /USR/LOCAL/VAR/LOG/MONGODB/MONGO.LOG, je ne peux toujours rien voir dans le fichier journal.
queue -f /usr/local/var/log/mongodb/mongo.log a fonctionné pour moi juste bien. Imprimer ("Quelqu'un de débogage") a appelé à partir de la fonction de fonctionnement à ce fichier. Assurez-vous que votre Mongo écrit des journaux dans ce fichier. Peut-être que vous l'a remplacé. Vérifiez votre Mongo Conf (/usr/local/etc/mongod.conf).
L'emplacement ci-dessus pour Mac OS n'a pas fonctionné pour moi. Vous ferez mieux d'ajouter le drapeau --LogPath avec votre propre fichier. Je peux voir la sortie lors de l'utilisation d'impression () de cette façon
Il existe une page dédiée sur le site Web de Mongodb qui est votre réponse: http: // www.mongodb.org/display/docs/troubleMooting+Mapreduce p>
Et évidemment, votre réduction est fausse: le résultat de la ligne ++ sera finalement contenant le nombre d'éléments contenus dans les valeurs de matrice qui (dans la carte réduire le paradigme) ne signifie rien. Votre fonction réduite ne fait que renvoyer un nom d'hôte "aléatoire" (car Mapreduce Algo n'est pas prédicable sur la teneur en réduite à une étape) et un nombre aléatoire. P>
Pouvez-vous expliquer ce que vous voulez faire? (Je suppose que vous voulez compter le nombre de "quelque chose" par hôte) p>
Jetez un coup d'œil à ce simple projet de débogueur de MongoDB MongoDB Mongodb, qui permet d'obtenir des résultats d'agrégation sur des données d'échantillonnage, ainsi que d'effectuer un débogage étape par étape de la carte / réduction / finalisez les fonctions dans votre navigateur Environment. P>
J'espère que ce sera utile. p>
http://targetprocess.github.io/mongo-mapreduce-debug-online / p>
Ne fournissez pas seulement un lien. Votre réponse devrait être autonome.
Veuillez lire "Comment puis-je écrire une bonne réponse?"
Votre débogueur est génial! tks :-)