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

问题描述 投票:0回答:1

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

{
    "errors": [
        "Not found: /jars/upload"
    ]
} 
apache-flink flink-streaming
1个回答
0
投票

应用模式下可以使用flink命令行提交job

$ ./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。

另外session模式命令是:

# (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设计的。 rest api 目前不支持应用模式提交flink job。 请求url是这样的:

{{cluster_address}}/jars/xxx.jar/run
.

当你通过rest api提交作业时,它假设你已经启动了Kubernetes session,并且集群地址固定在url中,类似于以会话模式提交作业。

© www.soinside.com 2019 - 2024. All rights reserved.