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 (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 |
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, Fabian2017-09-19 10:23 GMT+02:00 Emily McMahon <[hidden email]>:
|
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: 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 <[hidden email]> wrote:
|
Thanks Eron & Fabian. The issue was hitting a yarn proxy url vs the node itself. For example this worked http://{ip}:37716/jobs/1a0fd176ec8aabb9b8464fa481f755f0/cancel-with-savepoint/target-directory/s3%3A%2F%2F%2Fremit-flink But this did not http://{ip}:20888/proxy/application_1504649135200_0001/jobs/1a0fd176ec8aabb9b8464fa481f755f0/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/cca2dd609c716a7b0a195700777e5b1f/cancel-with-savepoint/target-directory/tmp/ Cheers, Emily On Tue, Sep 19, 2017 at 2:37 PM, Eron Wright <[hidden email]> 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/1a0fd176ec8aabb9b8464fa481f755f0/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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]>: > >>> 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 signature.asc (201 bytes) Download Attachment |
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 <[hidden email]> wrote: Hi Emily, |
Free forum by Nabble | Edit this page |