Currently I don't see a way to circumvent the splitting. You will have
to use a different delimiter, I guess a semi-colon could work?
The code is rather optimistic in that it assumes commas to not occur
within a parameter value, and doesn't support any kind of escaping or
quoting. (And this is a rabbit hole I'd rather avoid)
Ultimately I would love to change this call to send the parameters as
JSON instead (then you wouldn't have to deal with escaping
characters...), but we can't do that until the API versioning is in
place (no ETA).
On 20.04.2018 12:37, Dongwon Kim wrote:
Hi,
I'm trying to run a program by sending POST requests.
I've already spawned dispatcher in YARN and uploaded a jar file to the
dispatcher.
I want to execute my application using the following arguments
(--topic and --kafkaParams):
--topic gps-topic --kafkaParams
bootstrap.servers=dacoe2:20245,group.id
<http://group.id>=trajectory-tracker
As you can see, there's a comma in the value of kafkaParams.
When I'm sending my application using the following command from Bash
(%20 is a space and $2C is a comma),
bash> curl -X POST
'http://dacoe4.weave.local:45097/jars/7b6880d7-b899-4243-8b9b-a01ad7f8a854_Tmap-1.0-SNAPSHOT.jar/run?entry-class=com.skt.tmap.trajectorytracker.TrajectoryTracker&program-args=--topic%20gps-topic%20--kafkaParams%20bootstrap.servers=dacoe2:20245%2Cgroup.id
<http://group.id>=trajectory-tracker'
I get the following response from the dispatcher:
{
"errors": [
"Expected only one value [--topic gps-topic --kafkaParams
bootstrap.servers=dacoe2:20245, group.id
<http://group.id>=trajectory-tracker]."
]
}
What I found from the source code is that
org.apache.flink.runtime.rest.messages.MessageQueue tries split the
value of program-ages using comma as a delimiter.
I think I could modify my program to get arguments in a different way
but it is not going to be intuitive to use different characters for a
delimiter instead of comma.
How you guys think?
Or there's a way to avoid this behavior of splitting the value of
program-args into multiple pieces?
best,
- Dongwon