RestSubmissionServer¶
RestSubmissionServer is an abstraction of Application Submission Gateways that can handle submit, kill and status requests using REST API (JSON over HTTP).
URLs and RestServlets¶
| URL | Method | RestServlet |
|---|---|---|
| /v1/submissions/create/* | POST | SubmitRequestServlet |
| /v1/submissions/kill/* | POST | KillRequestServlet |
| /v1/submissions/status/* | GET | StatusRequestServlet |
| /* | (all) | ErrorServlet |
The above URLs and RestServlets are registered when RestSubmissionServer is requested to start.
Contract¶
killRequestServlet¶
killRequestServlet: KillRequestServlet
Used when:
RestSubmissionServeris requested for the contextToServlet
statusRequestServlet¶
statusRequestServlet: StatusRequestServlet
Used when:
RestSubmissionServeris requested for the contextToServlet
submitRequestServlet¶
submitRequestServlet: SubmitRequestServlet
Used when:
RestSubmissionServeris requested for the contextToServlet
Implementations¶
- MesosRestServer
- StandaloneRestServer
Creating Instance¶
RestSubmissionServer takes the following to be created:
- Host name
- Requested Port
-
SparkConf
Abstract Class
RestSubmissionServer is an abstract class and cannot be created directly. It is created indirectly for the concrete RestSubmissionServers.
Starting¶
start(): Int
start starts a REST service on the requested port (or any free higher).
start prints out the following INFO to the logs:
Started REST server for submitting applications on port [port]
In the end, start returns the port of the server.
start is used when:
Master(Spark Standalone) is requested to onStart
doStart¶
doStart(
startPort: Int): (Server, Int)
doStart...FIXME
Logging¶
RestSubmissionServer is an abstract class and logging is configured using the logger of the implementations.