我们可以在Flink“应用程序”部署模式下使用Flink REST API吗?

ego6inou  于 2023-03-27  发布在  Apache
关注(0)|答案(1)|浏览(154)

我首先使用Flink“应用程序”模式声明了一个作业,然后尝试使用Flink REST API在该集群上上传jar。上传jar API返回404 Not Found错误。Flink REST API只适用于会话模式,不支持应用程序/每个作业模式

{
    "errors": [
        "Not found: /jars/upload"
    ]
}
lmyy7pcs

lmyy7pcs1#

您可以使用flink命令行在应用程序模式下提交作业。

$ ./bin/flink run-application \
    --target kubernetes-application \
    -Dkubernetes.cluster-id=my-first-application-cluster \
    -Dkubernetes.container.image.ref=custom-image-name \
    local:///opt/flink/usrlib/my-flink-job.jar

您应该指定kubernetes-application目标和集群ID。
会话模式命令也是:

# (1) Start Kubernetes session
$ ./bin/kubernetes-session.sh -Dkubernetes.cluster-id=my-first-flink-cluster

# (2) Submit example job
$ ./bin/flink run \
    --target kubernetes-session \
    -Dkubernetes.cluster-id=my-first-flink-cluster \
    ./examples/streaming/TopSpeedWindowing.jar

# (3) Stop Kubernetes session by deleting cluster deployment
$ kubectl delete deployment/my-first-flink-cluster

Rest API最初是为monitor设计的,现在不支持在应用模式下提交flink作业,请求url是这样的:{{cluster_address}}/jars/xxx.jar/run .
当你通过rest API提交一个作业时,它假设你已经启动了Kubernetes会话,并且集群地址在url中是固定的,在会话模式下提交一个作业是类似的。

相关问题