2012-08-22 7 views
8

J'essaie d'activer le mauvais saut d'entrée sur mes travaux Amazon Elastic MapReduce. Je suis la merveilleuse recette décrite ici:Réglage des paramètres hadoop avec boto?

http://devblog.factual.com/practical-hadoop-streaming-dealing-with-brittle-code

Le lien ci-dessus dit que je dois mettre en quelque sorte les paramètres de configuration suivants sur un travail DME:

mapred.skip.mode.enabled=true 
mapred.skip.map.max.skip.records=1 
mapred.skip.attempts.to.start.skipping=2 
mapred.map.tasks=1000 
mapred.map.max.attempts=10 

Comment puis-je configurer ces (et autre) paramètres mapred.XXX sur un JobFlow utilisant Boto?

Répondre

14

Après plusieurs heures de lutte, la lecture du code, et l'expérimentation, voici la réponse:

Vous devez ajouter une nouvelle BootstrapAction, comme ceci:

params = ['-s','mapred.skip.mode.enabled=true', 
      '-s', 'mapred.skip.map.max.skip.records=1', 
      '-s', 'mapred.skip.attempts.to.start.skipping=2', 
      '-s', 'mapred.map.max.attempts=5', 
      '-s', 'mapred.task.timeout=100000'] 
config_bootstrapper = BootstrapAction('Enable skip mode', 's3://elasticmapreduce/bootstrap-actions/configure-hadoop', params) 

conn = EmrConnection(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY) 
step = StreamingStep(name='My Step', ...) 
conn.run_jobflow(..., bootstrap_actions=[config_bootstrapper], steps=[step], ...) 

Bien sûr, si vous avez plus Plus d'une action d'amorçage, vous devez simplement l'ajouter au tableau bootstrap_actions.

+0

Merci! Cela a fonctionné pour moi. Cela fonctionne parfois quand je spécifie les mêmes paramètres avec ['-D', '...'] pour le même ensemble de valeurs avec un "step" au lieu d'un bootstrap, mais l'ajout de cette étape bootstrap semble rendre cette balle preuve. – Suman

Questions connexes