Mesosクラスターがあり、それに接続されたSparkシェルを実行していました。クライアントをシャットダウンしましたが、Mesosはフレームワークがアクティブである必要があると信じています。
CurlでDELETEを使用してMesosにフレームワークを削除させようとしています( https://issues.Apache.org/jira/browse/MESOS-139 )
しかし、サーバーから応答がありません。また、マスターに正確に接続する方法がわかりません。ZooKeeperによって管理されているマルチマスター設定があり、アクティブなマスターだけに接続しようとしていました。
curl -X DELETE http://<active master url>:5050/framworks/<framework id>
上記が正しいリクエストであるかどうかを誰かが確認できますか?私はmesos-0.20.0を使用しています。
ありがとう
そのJIRAの問題は(コメントで)DELETEに言及していますが、フレームワークのシャットダウンがどのように実装されているかではありません。/shutdownエンドポイントに対してPOSTリクエストを実行する必要があります。
例: https://github.com/Apache/mesos/blob/master/src/tests/teardown_tests.cpp
クライアントをシャットダウンした後にsparkフレームワークが削除されない理由については、sparkが高いフェイルオーバータイムアウトを使用しているためだと思いますか?それでも、私はmは、MesosUIが非アクティブではなくアクティブとして表示することに驚いています。
URLを投稿して呼び出すrestfullオプションがありますhttp://your_mesos:5050/master/teardown
frameworkIdパラメーターを渡す
curl -d@/tmp/post.txt -X POST http://your_mesos:5050/master/teardown
/tmp/post.txtは、次の内容のファイルです。
frameworkId=23423-23423-234234-234234
私は遅れていることを知っていますが、将来の質問者のために
編集:エンドポイントはteardown
と呼ばれるようになりました。
例(@Jeffに感謝):curl -X POST http://your_mesos:5050/master/teardown -d 'frameworkId=23423-23423-234234-234234'
これを最新の状態に保つために:マスターエンドポイントの名前がティアダウンに変更されました。つまり、 http:// localhost:5050/master/teardown が新しい方法です。
ティアダウンリクエスト(JSON):
POST /master/teardown HTTP/1.1
Host: masterhost:5050
Content-Type: application/json
frameworkId=12220-3440-12532-2345
分解応答:
HTTP/1.1 200 Ok
@montellsの作品をリフすると、ワンライナーは
echo "frameworkId= 23423-23423-234234-234234" | curl -d@- -X POST http://localhost:5050/master/shutdown
これを.bashrcに追加します。
#Mesos
killtask(){ curl -XPOST http://mesos_url:5050/master/teardown -d 'frameworkId='$@''; } ;
使用例:
killtask 123