Nel documento MapReduce di Google, hanno un'attività di backup, penso che sia la stessa cosa con attività speculative in Hadoop. Come viene implementato il compito speculativo? Quando avvii un'attività speculativa, l'attività parte dall'inizio come la più vecchia e lentamente, oppure inizia da dove ha raggiunto l'attività meno recente (in tal caso, deve copiare tutti i dati e lo stato intermedio?)Esecuzione task speculare Hadoop
risposta
Un problema con il sistema Hadoop è che dividendo le attività su molti nodi, è possibile che alcuni nodi lenti limitino il resto del programma.
Le attività potrebbero essere lente per vari motivi, tra cui la degradazione dell'hardware o la configurazione errata del software, ma le cause potrebbero essere difficili da rilevare poiché le attività continuano comunque correttamente, anche se dopo un periodo di tempo più lungo del previsto. Hadoop non prova a diagnosticare e correggere compiti a bassa esecuzione; al contrario, tenta di rilevare quando un'attività viene eseguita più lentamente del previsto e avvia un'altra attività equivalente come backup. Si parla di esecuzione speculativa di compiti.
Ad esempio, se un nodo ha un controller di disco lento, può leggere il suo input solo al 10% della velocità di tutti gli altri nodi. Pertanto, quando 99 attività della mappa sono già state completate, il sistema attende ancora l'attività della mappa finale per il check-in, operazione che richiede molto più tempo rispetto a tutti gli altri nodi.
Forzando le attività in modo che siano isolate l'una dall'altra, le singole attività non sanno da dove provengono i loro input. Le attività si affidano alla piattaforma Hadoop per fornire il giusto input. Pertanto, lo stesso input può essere elaborato più volte in parallelo, per sfruttare le differenze nelle capacità della macchina. Poiché la maggior parte delle attività in un lavoro sta per concludersi, la piattaforma Hadoop pianificherà copie ridondanti delle attività rimanenti su diversi nodi che non hanno altro lavoro da eseguire. Questo processo è noto come esecuzione speculativa. Al completamento delle attività, annunciano questo fatto al JobTracker. Qualunque copia di un'attività finisce prima diventa la copia definitiva. Se altre copie sono state eseguite in modo speculativo, Hadoop dice a TaskTrackers di abbandonare le attività e scartare le loro uscite. I Reducers ricevono quindi i loro input da qualunque Mapper completato con successo, prima.
L'esecuzione speculativa è abilitata per impostazione predefinita. È possibile disabilitare l'esecuzione speculativa per i mapper ei riduttori impostando le opzioni mapred.map.tasks.speculative.execution
e mapred.reduce.tasks.speculative.execution
JobConf su false, utilizzando rispettivamente l'API vecchia, mentre con l'API più recente è possibile prendere in considerazione la modifica di mapreduce.map.speculative
e mapreduce.reduce.speculative
.
Quindi, per rispondere alla tua domanda, ricomincia da capo e non ha nulla a che vedere con quanto l'altro compito ha svolto/completato.
Riferimento: http://developer.yahoo.com/hadoop/tutorial/module4.html
Credo che 'mapreduce.map.speculative' e' mapreduce.reduce.speculative' siano i nuovi equivalenti a 'mapred.map.tasks.speculative.execution' e' mapred.reduce.tasks.speculative.execution', rispettivamente. –
- 1. GLSL illuminazione speculare
- 2. Personaggio speculare Unicode?
- 3. Datanode Hadoop, namenode, secondario-namenode, job-tracker e task-tracker
- 4. Ottieni l'ID tentativo dell'attività per l'attività Hadoop attualmente in esecuzione
- 5. Griffon: esecuzione 'gradle build' - Esecuzione fallita per task ': jfxJar'
- 6. Esecuzione caposquadra da un task rake
- 7. Task continuazione esecuzione parallelo asincrono/attendono
- 8. Esecuzione di un task post installazione Maven
- 9. Errore: esecuzione fallita per task ': app: packageDebug'
- 10. Uscite multiple Hadoop con esecuzione speculativa
- 11. Eccezione in esecuzione /etc/hadoop/conf.cloudera.yarn/topology.py
- 12. "async Task allora attendono Task" vs "Task poi tornare compito"
- 13. Task Rake Task
- 14. esecuzione di una query di selezione con un'Ansible Task
- 15. task rake in esecuzione su 'produzione' e specificando ambiente?
- 16. In che modo Task Scheduler termina un processo in esecuzione?
- 17. Come controllare se i daemon Hadoop sono in esecuzione?
- 18. Differenze tra Hadoop-common, Hadoop-core e Hadoop-client?
- 19. Hadoop streaming a python utilizzando mongo-hadoop
- 20. Recuperare Hadoop NameNode mancata
- 21. Variabili globali in hadoop
- 22. Jquery: Speculare un input di testo in un altro
- 23. Il video acquisito da Media Foundation è speculare verticale
- 24. Come ottenere l'immagine speculare di un array (MATLAB)?
- 25. Lavoro/Task Stealing ThreadPoolExecutor
- 26. Unity PerThreadLifetimeManager e Task
- 27. Hadoop come database archivio documenti
- 28. Hadoop in Windows: file non trovato eccezione
- 29. Come posso produrre un task <Task> a scartare
- 30. ritorno Task invece di Task <TResult> da TaskCompletionSource
Aggiungendo alla domanda, quello che sarebbe stato l'elenco dei motivi se si dovesse disattivare l'esecuzione dell'attività speculativa del tutto a livello di tutto il sistema? quali benefici sono stati ottenuti quando l'esecuzione speculativa è stata disabilitata. –