I just learned that Flink savepoints API was refactored to require using
HTTP POST.

That's fine otherwise, but makes life harder when Flink is run on top of
YARN.

I've added example calls below to show how POST is declined by
the hadoop-yarn-server-web-proxy*, which only supports GET and PUT.

Can you think of any solution to this? If I would be able to determine the
actual host & port for Flink UI, I could use that instead of the proxy
address. But that would probably require opening at least one more port, so
it's not the optimal solution either. Ideally I would have Flink REST API
completely accessible with GET and PUT methods.

To me it seems like AWS EMR will also hit this issue as soon as they start
supporting Flink 1.5, because they seem to run Flink as a YARN app.


*)
https://github.com/apache/hadoop/blob/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/main/java/org/apache/hadoop/yarn/server/webproxy/WebAppProxyServlet.java#L296-L306


$ http POST
http://10.0.10.71:20888/proxy/application_1522844153347_0001/jobs/652e207f8578574d4a322e23d4f8b908/checkpoints

HTTP/1.1 405 HTTP method POST is not supported by this URL
Cache-Control: must-revalidate,no-cache,no-store
Content-Length: 1523
Content-Type: text/html; charset=iso-8859-1
Date: Wed, 04 Apr 2018 12:48:05 GMT
Date: Wed, 04 Apr 2018 12:48:05 GMT
Pragma: no-cache
Pragma: no-cache

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 405 HTTP method POST is not supported by this URL</title>
</head>
<body><h2>HTTP ERROR 405</h2>
<p>Problem accessing
/proxy/application_1522844153347_0001/jobs/652e207f8578574d4a322e23d4f8b908/checkpoints.
Reason:
<pre>    HTTP method POST is not supported by this URL</pre></p><hr
/><i><small>Powered by Jetty://</small></i><br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>

</body>
</html>


$ http PUT
http://10.0.10.71:20888/proxy/application_1522844153347_0001/jobs/652e207f8578574d4a322e23d4f8b908/checkpoints

HTTP/1.1 404 Not Found
Access-Control-Allow-Origin: *
Cache-Control: no-cache
Content-Length: 25
Content-Type: application/json; charset=UTF-8
Date: Wed, 04 Apr 2018 12:48:09 GMT
Date: Wed, 04 Apr 2018 12:48:09 GMT
Expires: Wed, 04 Apr 2018 12:48:09 GMT
Expires: Wed, 04 Apr 2018 12:48:09 GMT
Pragma: no-cache
Pragma: no-cache

{
    "errors": [
        "Not found."
    ]
}

^ expected to get this from flink because there's no PUT /checkpoints.

Reply via email to