Sto scrivendo un framework mesos e voglio eseguire i miei compiti usando il mio esecutore personalizzato. Ho esaminato un paio di altre basi di codici del framework mesos (chronos e marathon) e ho scritto uno scheduler che esegue i comandi della shell usando il comando di esecuzione predefinito. Ora voglio sostituire l'esecutore predefinito con qualcosa di personalizzato. Il problema è che non riesco a capire come registrare un esecutore con lo schiavo. La documentazione sulla costruzione di un framework afferma che dovrebbe essere un eseguibile e puoi fornire il percorso usando executorInfo ma non vedo esattamente come farlo. Inoltre, che senso ha avere l'interfaccia Executor che ogni esecutore deve implementare e allo stesso tempo richiedere un eseguibile oltre a tutto ciò? Quali sono gli argomenti dell'eseguibile?Come avviare un'attività mesos su un particolare esecutore?
risposta
I collegamenti eseguibili dell'esecutore contro la libreria mesos e le interfacce/callback executor sono l'unico modo per ricevere notifiche quando eventi come registrazione, registrazione e disconnessione avvengono nello slave o quando le richieste launchTask o killTask vengono emesse dal framework .
È cablato in due parti (proprio come i framework), costituito da un ExecutorDriver e dall'implementazione dell'esecutore.
Se si dà un'occhiata a mesos/executor.hpp, si noterà che il costruttore richiede un puntatore a un executor. Ad esempio
class MyExecutor : public Executor {
/* Implement registered, reregistered, ... */
}
MesosExecutorDriver* driver = new MesosExecutorDriver(new MyExecutor());
driver->run();
// As long as the executor is running, the callbacks in MyExecutor will
// be invoked by the mesos slave when events and requests are received.
I diversi callback vi offre i buffer di protocollo necessarie (definito in mesos.proto) esempio Un TaskInfo in launchTask, TaskID in killTask e così via.
Quando si arriva al lato quadro e si desidera registrare il proprio esecutore, provare a dare un'occhiata a https://github.com/mesosphere/mesos-go/blob/master/src/mesos.apache.org/example_framework/main.go.
Spero che questo aiuti e fammi sapere se ho bisogno di espandere su uno dei precedenti.
- 1. Esegui esecutore spark su YARN
- 2. Mesos: mesos-slave offre porte aggiuntive
- 3. Annullamento esecutore
- 4. Elimina un framework in Mesos
- 5. Informazioni sull'allocazione delle risorse per i lavori spark su mesos
- 6. C++ 11: esecutore universale
- 7. Precisione esecutore pianificato Java
- 8. È un esecutore che deve essere riutilizzato?
- 9. Memoria persistente per Apache Mesos
- 10. Come avviare Apache su EC2
- 11. Come avviare PostgreSQL su Windows
- 12. Esecutore JavaScript in Selenium WebDriver
- 13. Come eseguire un'attività una tantum con Apache Mesos/Marathon?
- 14. Come capire l'allocazione della CPU in Mesos?
- 15. Filtro intento Deeplink su un particolare percorsoPrefix?
- 16. utilizzando webdriverwait su un particolare IWebElement
- 17. Come incrementare l'indice su un particolare valore in Parallel.Per?
- 18. Arresto regolare di fili e esecutore
- 19. Come avviare la mia app meteo su un dispositivo Android?
- 20. Come avviare un servizio mongodb su mac OS X?
- 21. Come avviare un altro processo in sandbox su Mac?
- 22. Come avviare la console Rebol2/View su un server?
- 23. Come usare/avviare il demone gradle su un Mac?
- 24. Come concedere a un utente il permesso di avviare e interrompere un particolare servizio usando il codice C#
- 25. Cambia memoria esecutore (e altre configurazioni) per Spark Shell
- 26. Come impostare il punto di interruzione su un particolare file nel programma Perl?
- 27. Java pool di thread esecutore Monitoraggio
- 28. Come rebase mentre salta un particolare commit?
- 29. Scopri se esiste un commit particolare su un ramo git
- 30. Responsabile autonomo vs. Filati vs. Mesos