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 RestServlet
s are registered when RestSubmissionServer
is requested to start.
Contract¶
killRequestServlet¶
killRequestServlet: KillRequestServlet
Used when:
RestSubmissionServer
is requested for the contextToServlet
statusRequestServlet¶
statusRequestServlet: StatusRequestServlet
Used when:
RestSubmissionServer
is requested for the contextToServlet
submitRequestServlet¶
submitRequestServlet: SubmitRequestServlet
Used when:
RestSubmissionServer
is 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.