It is not surprising to see fidelity issues with the YARN proxy. I suggest opening a ticket on Flink side to update the cancel-with-savepoint API to take the target directory as a query string parameter (of course, backwards compatibility should be maintained).
On Wed, Sep 20, 2017 at 1:55 AM, Nico Kruber <n...@data-artisans.com> wrote: > Hi Emily, > I'm not familiar with the details of the REST API either but if this is a > problem with the proxy, maybe it is already interpreting the encoded URL > and > passes it on un-encoded - have you tried encoding the path again? That is, > encoding the percent-signs: > > http:// > {ip}:20888/proxy/application_1504649135200_0001/jobs/ > 1a0fd176ec8aabb9b8464fa481f755f0/cancel-with-savepoint/target-directory/ > s3%253A%252F%252F%252Fremit-flink > > > Nico > > On Wednesday, 20 September 2017 00:52:05 CEST Emily McMahon wrote: > > Thanks Eron & Fabian. > > > > The issue was hitting a yarn proxy url vs the node itself. For example > this > > worked > > http:// > > {ip}:37716/jobs/1a0fd176ec8aabb9b8464fa481f755 > f0/cancel-with-savepoint/targe > > t-directory/s3%3A%2F%2F%2Fremit-flink > > > > But this did not > > http:// > > {ip}:20888/proxy/application_1504649135200_0001/jobs/ > 1a0fd176ec8aabb9b8464fa > > 481f755f0/cancel-with-savepoint/target-directory/s3% > 3A%2F%2F%2Fremit-flink > > > > It's a bit confusing because the cancel api works with either and the > proxy > > url sometimes works as this was successful http:// > > {ip}:20888/proxy/application_1504649135200_0001/jobs/ > cca2dd609c716a7b0a19570 > > 0777e5b1f/cancel-with-savepoint/target-directory/tmp/ > > > > Cheers, > > Emily > > > > On Tue, Sep 19, 2017 at 2:37 PM, Eron Wright <eronwri...@gmail.com> > wrote: > > > Good news, it can be done if you carefully encode the target directory > > > with percent-encoding, as per: > > > https://tools.ietf.org/html/rfc3986#section-2.1 > > > > > > For example, given the directory `s3:///savepoint-bucket/my- > awesome-job`, > > > which encodes to `s3%3A%2F%2F%2Fsavepoint-bucket%2Fmy-awesome-job`, I > was > > > able to submit the following URL: > > > http://localhost:8081/jobs/5c360ded6e4b7d8db103e71d68b7c8 > > > 3d/cancel-with-savepoint/target-directory/s3%3A%2F%2F% > > > 2Fsavepoint-bucket%2Fmy-awesome-job > > > > > > And see the following in the log: > > > 2017-09-19 14:27:45,939 INFO > > > org.apache.flink.runtime.jobmanager.JobManager> > > > - Trying to cancel job 5c360ded6e4b7d8db103e71d68b7c83d > > > > > > with savepoint to s3:///savepoint-bucket/my-awesome-job > > > > > > -Eron > > > > > > On Tue, Sep 19, 2017 at 1:54 PM, Fabian Hueske <fhue...@gmail.com> > wrote: > > >> Hi Emily, > > >> > > >> thanks for reaching out. > > >> I'm not familiar with the details of the Rest API but Ufuk (in CC) > might > > >> be able to help you. > > >> > > >> Best, Fabian > > >> > > >> 2017-09-19 10:23 GMT+02:00 Emily McMahon <emil...@remitly.com>: > > >>> I've tried every combination I can think of to pass an s3 path as the > > >>> target directory (url encode, include trailing slash, etc) > > >>> > > >>> I can successfully pass a local path as the target directory (ie > > >>> /jobs/$jobID/cancel-with-savepoint/target-directory/tmp) so I don't > > >>> think there's a problem with the jobId or rest of the url. I also > > >>> verified > > >>> I can create the savepoint on s3 from the command line so it's not a > > >>> permission issue. > > >>> > > >>> Here's the same question on stack overflow > > >>> <https://stackoverflow.com/questions/45844298/send-flink- > job-manager-a-f > > >>> ully-qualified-path-to-a-savepoint-directory-using-the> (with the > > >>> exception that they are getting a 502 whereas I'm getting a 404) > > >>> > > >>> using Flink 1.3.1 > > >>> > > >>> Anyone have a working example? > > >>> > > >>> Thanks, > > >>> Emily > >