私はmesosフレームワークを作成しています。私は自分のカスタムエグゼキュータを使ってタスクを実行したいと思います。私は他のいくつかのmesosフレームワークのコードベース(chronosとmarathon)を見て、デフォルトコマンドエグゼキュータを使ってシェルコマンドを実行するスケジューラーを書きました。今私はデフォルトのエグゼキュータをカスタムに置き換えたいと思っています。問題は、エグゼキュータをスレーブに登録する方法を理解できないことです。フレームワークを構築するためのドキュメントでは、実行可能ファイルでなければならず、executorInfoを使用してパスを提供することができますが、実行方法は正確にはわかりません。また、すべてのエグゼキュータが実装しなければならないエグゼキュータインタフェースを持つと同時に、すべての実行可能プログラムの上に実行可能ファイルが必要ですか?実行可能ファイルへの引数は何ですか?特定のエグゼキュータでmesosタスクを起動するにはどうすればよいですか?
5
A
答えて
4
スレーブ内での登録、再登録、切断などのイベントが発生したとき、またはlaunchTaskまたはkillTaskリクエストがフレームワークによって発行されたときに通知される唯一の方法は、execos実行可能ファイルリンクとexecutorインターフェイス/コールバックです。 。
これはExecutorDriverとエグゼキュータの実装からなる2つの部分で構成されています(フレームワークのように)。
mesos/executor.hppを見ると、コンストラクタにエグゼキュータへのポインタが必要であることがわかります。例えば、
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.
異なるコールバックは、必要なプロトコルバッファ(mesos.protoで定義されています)を提供します。 launchTaskのTaskInfo、killTaskのTaskIDなどがあります。
フレームワーク側に到達し、独自のエグゼキュータを登録する場合は、https://github.com/mesosphere/mesos-go/blob/master/src/mesos.apache.org/example_framework/main.goを参照してください。
私が上記のいずれかを展開する必要がある場合は、これが役立ちます。
関連する問題
- 1. 特定のタブでアクティビティを起動するにはどうすればよいですか?
- 2. crontabの特定のタスクに異なるタイムゾーンを設定するにはどうすればよいですか?
- 3. インテントを持つクラスの特定のインスタンスを起動するにはどうすればよいですか?
- 4. 特定の時刻にAndroid AlphaAnimationを起動するにはどうすればよいですか?
- 5. 特定のSynchronizationContextに投稿されるタスクを作成するにはどうすればよいですか?
- 6. Mesosクラスタのすべてのノードでenv varsを設定するにはどうすればよいですか?
- 7. 特定のユーザーアカウントでサーバー構築タスクを実行するにはどうすればよいですか?
- 8. アクティブな特定のスレッドでタスクを実行するにはどうすればよいですか?
- 9. UIスレッドから特定の種類のタスクを実行するにはどうすればよいですか?
- 10. 完了したすべてのタスクのエントリを特定するにはどうすればよいですか?
- 11. インテントでアプリケーションを起動するにはどうすればよいですか?
- 12. ウェブページでデフォルトブラウザを起動するにはどうすればよいですか?
- 13. プログラムで.pdfを起動するにはどうすればよいですか?
- 14. 特定の日付にタスクを実行するにはどうすればよいですか?
- 15. 特定の時刻にAndroidデバイスを起動するようにプログラムでタイマーを設定するにはどうすればよいですか?
- 16. 繰り返しタスクを再起動/再利用するにはどうすればよいですか?
- 17. 特定のサイトでのみ起動するようにFirebugを設定するにはどうすればよいですか?
- 18. notify/wait()で特定の(グループの)スレッドを起床/中断するにはどうすればよいですか?
- 19. 指定されたエグゼキュータよりも多くのエグゼキュータを起動します
- 20. gradle:特定のタスクを実装したプラグインを調べるにはどうすればよいですか?
- 21. レールアプリを起動するときに、Rubyサーバスクリプトを起動するにはどうすればよいですか?
- 22. Mac Lionでシステム起動時にJBossを起動/停止するにはどうすればよいですか?
- 23. addEventListenerで定義されたdblclickイベントをプログラムで起動するにはどうすればよいですか?
- 24. 特定のボタンでのみ起こるボタンホバーフリッカーを取り除くにはどうすればよいですか?
- 25. iOSでユーザーを特定するにはどうすればよいですか?
- 26. NativeScriptを起動するにはどうすればよいですか?
- 27. IIS 7.5 Expressを起動するにはどうすればよいですか?
- 28. C#モバイルアプリケーションを再起動するにはどうすればよいですか?
- 29. スプールプリンタを再起動するにはどうすればよいですか?
- 30. スクリプトを再起動するにはどうすればよいですか?