2013-08-06 7 views
0

J'utilise le streaming Hadoop pour écrire un grabber HTML basé sur python. Je trouve que l'exécution d'un seul script python est lente. Je veux le modifier en une version multithread. Est-ce que quelqu'un sait ce qui serait un bon nombre pour définir le nombre de threads dans le mappeur. Je ne suis pas sûr des spécifications de chaque nœud du cluster mais je suppose qu'il supporterait au moins deux threads.Filetage avec Hadoop Streaming

+0

Threading fonctionne apparemment avec le streaming Hadoop, mais ne sait toujours pas combien de threads nous pouvons faire tourner par mappeur. – viper

Répondre

0

J'ai essayé d'utiliser le threading avec python, il y avait des problèmes avec le Global Interpreter Lock. Le ported code pour utiliser le module de multi-traitement, en interne hadoop assigne autant de mappeurs qu'il y a de cœurs dans le cluster, donc le multitraitement n'est pas le chemin à parcourir si vous avez besoin d'accélérer. Le multithread si exécuté correctement pourrait donner une certaine accélération

0

Je n'ai pas utilisé hadoop streaming pour le grabber html mais voici un post qui parle du fonctionnement d'urllib2 en utilisant plusieurs threads (pas un package multiprocessing, juste un simple multi thread).

L'espoir peut être utile.

Questions connexes