id: run_flink title: 运行Flink作业 description: 如何与YuniKorn一起运行Flink作业 image: https://svn.apache.org/repos/asf/flink/site/img/logo/png/100/flink_squirrel_100_color.png keywords:

  • spark

使用 YuniKorn 在 Kubernetes 上运行 Apache Flink 非常容易。 根据在 Kubernetes 上运行 Flink 的模式不同,配置会略有不同。

Standalone(独立)模式

请关注 Kubernetes 设置 以获取 standalone 部署模式的细节和示例。 在这种模式下,我们可以直接在 Deployment/Job spec 中添加需要的标签(applicationId 和 queue)来使用 YuniKorn 调度器运行 flink 应用程序,以及 使用 YuniKorn 调度器运行 workloads .

Native(原生)模式

请关注 原生 Kubernetes 设置 以获取原生部署模式的细节和示例。 只有 Flink 1.11 或更高版本才支持在 native 模式下使用 YuniKorn 调度程序运行 Flink 应用程序,我们可以利用两个 Flink 配置 kubernetes.jobmanager.labelskubernetes.taskmanager.labels 来设置所需的标签。 例子:

  • 启动一个 Flink session
./bin/kubernetes-session.sh \
  -Dkubernetes.cluster-id=<ClusterId> \
  -Dtaskmanager.memory.process.size=4096m \
  -Dkubernetes.taskmanager.cpu=2 \
  -Dtaskmanager.numberOfTaskSlots=4 \
  -Dresourcemanager.taskmanager-timeout=3600000 \
  -Dkubernetes.jobmanager.labels=applicationId:MyOwnApplicationId,queue:root.sandbox \
  -Dkubernetes.taskmanager.labels=applicationId:MyOwnApplicationId,queue:root.sandbox
  • 启动一个 Flink application
./bin/flink run-application -p 8 -t kubernetes-application \
  -Dkubernetes.cluster-id=<ClusterId> \
  -Dtaskmanager.memory.process.size=4096m \
  -Dkubernetes.taskmanager.cpu=2 \
  -Dtaskmanager.numberOfTaskSlots=4 \
  -Dkubernetes.container.image=<CustomImageName> \
  -Dkubernetes.jobmanager.labels=applicationId:MyOwnApplicationId,queue:root.sandbox \
  -Dkubernetes.taskmanager.labels=applicationId:MyOwnApplicationId,queue:root.sandbox \
  local:///opt/flink/usrlib/my-flink-job.jar