2012-08-22 15 views
8

Próbuję włączyć złe pomijanie na wejściach w moich ofertach Amazon Elastic MapReduce. Śledzę wspaniały przepis opisany tutaj:Ustawianie parametrów hadoop za pomocą boto?

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

Powyższy link mówi, że muszę się jakoś ustawić następujące parametry konfiguracyjne na pracy EMR:

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 

Jak mogę ustawić te (i inne) parametry mapred.XXX w JobFlow za pomocą Boto?

Odpowiedz

14

Po wielu godzinach zmagań, kod czytania i eksperymentowania, oto odpowiedź:

Trzeba dodać nową BootstrapAction, tak:

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], ...) 

Oczywiście, jeśli masz więcej niż jedna akcja bootstrap, powinieneś po prostu dodać ją do tablicy bootstrap_actions.

+0

Dzięki! To działało dla mnie. Czasami działa, gdy określam te same parametry za pomocą ["-D", "..."] dla tego samego zestawu wartości z "krokiem" zamiast z ładowaniem początkowym, ale dodanie tego kroku ładowania początkowego wydaje się powodować ten punkt dowód. – Suman

Powiązane problemy