Flink REST API POST 尝试使用上传的 jar 开始新作业时出错

Flink REST API POST error while trying to start a new job using the uploaded jar

我正在尝试点击 /jars/:jarid/run endpoint to start a Flink job as follows after reading up this -

curl -k -v -X POST -H "Content-Type: application/json" --data '
{
    "programArgsList": [
        "--runner",
        "FlinkRunner",
        "--inputTopicName",
        "inputTopicNameValue",
        "--Argument",
        "Value",
        "--streaming",
        "true"]
}
' http://<JobManager-hostname>:<port>/jars/MyApplication.jar/run

当我尝试上述命令时出现以下错误 -

{"errors":["Internal server error.","<Exception on server side:\norg.apache.flink.client.program.ProgramInvocationException: The main method 
caused an error: Argument 'FlinkRunner' does not begin with '--'\n\tat 
org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:546)\n\tat 
org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:421)\n\tat 
org.apache.flink.client.program.OptimizerPlanEnvironment.getOptimizedPlan(OptimizerPlanEnvironment.java:83)\n\tat 
org.apache.flink.client.program.PackagedProgramUtils.createJobGraph(PackagedProgramUtils.java:80)

Argument 'FlinkRunner' does not begin with '--' 让我认为我的示例中没有正确提供参数值。我知道 Flink 文档提供了 JSON 架构定义,而不是 REST API docs. What is the correct way to provide argument values? My example is following what the accepted solution suggested in this .

中的示例请求

以下 POST 请求对我有用,所以我在这里记录它 -

curl -k -v -X POST -H "Content-Type: application/json" --data '
{
    "programArgsList": [
        "--runner=FlinkRunner",
        "--inputTopicName=inputTopicNameValue",
        "--Argument=Value",
        "--streaming=true"]
}
' http://<JobManager-hostname>:<port>/jars/MyApplication.jar/run