本文为您介绍如何提交Flink作业。
前提条件
已在E-MapReduce on ACK控制台创建Flink集群,详情请参见快速入门。
注意事项
在本文的示例中,JAR文件已经直接打包在了镜像中。如果您使用的是自己的JAR包,您可以将其上传到阿里云OSS。上传操作请参见简单上传。
此时,需要您修改命令中的local:///opt/flink/examples/streaming/StateMachineExample.jar为您OSS上存放JAR包的真实路径,路径格式为oss://<yourBucketName>/<path>.jar。
方式一:通过ACK控制台提交作业
-
登录EMR on ACK。
-
在EMR on ACK页面,单击目标集群所在行所属 ACK 集群列的链接。
-
在容器组页面,单击右上角的使用YAML创建资源。
-
在创建页面,从示例模板列表中,选择自定义,模板内容请复制以下内容,然后单击创建。
apiVersion: flink.apache.org/v1beta1 kind: FlinkDeployment metadata: name: basic-emr-example spec: flinkVersion: v1_13 flinkConfiguration: taskmanager.numberOfTaskSlots: "2" state.savepoints.dir: file:///flink-data/flink-savepoints state.checkpoints.dir: file:///flink-data/flink-checkpoints serviceAccount: flink podTemplate: spec: serviceAccount: flink containers: - name: flink-main-container volumeMounts: - mountPath: /flink-data name: flink-volume volumes: - name: flink-volume emptyDir: {} jobManager: replicas: 1 resource: memory: "2048m" cpu: 1 taskManager: resource: memory: "2048m" cpu: 1 job: jarURI: local:///opt/flink/examples/streaming/StateMachineExample.jar parallelism: 2 upgradeMode: stateless说明本文以Flink 1.13版本为例,其他版本时请修改flinkVersion的配置,具体版本以控制台为准。
方式二:通过kubectl工具提交作业
-
通过kubectl连接Kubernetes集群,详情请参见获取集群KubeConfig并通过kubectl工具连接集群。
您也可以通过API等方式连接Kubernetes集群,详情请参见使用Kubernetes API。
-
新建basic-emr-example.yaml文件,文件内容如下。
apiVersion: flink.apache.org/v1beta1 kind: FlinkDeployment metadata: name: basic-emr-example spec: flinkVersion: v1_13 flinkConfiguration: taskmanager.numberOfTaskSlots: "2" state.savepoints.dir: file:///flink-data/flink-savepoints state.checkpoints.dir: file:///flink-data/flink-checkpoints serviceAccount: flink podTemplate: spec: serviceAccount: flink containers: - name: flink-main-container volumeMounts: - mountPath: /flink-data name: flink-volume volumes: - name: flink-volume emptyDir: {} jobManager: replicas: 1 resource: memory: "2048m" cpu: 1 taskManager: resource: memory: "2048m" cpu: 1 job: jarURI: local:///opt/flink/examples/streaming/StateMachineExample.jar parallelism: 2 upgradeMode: stateless说明-
文件名您可以自定义,本文以basic-emr-example.yaml为例介绍。
-
本文以Flink 1.13版本为例,其他版本时请修改flinkVersion的配置。
-
-
执行以下命令,提交作业。
kubectl apply -f basic-emr-example.yaml -namespace <集群对应的namespace>说明本文示例代码中的
<集群对应的namespace>,需要替换为集群的命名空间,您可以登录E-MapReduce on ACK控制台,在集群管理页面查看。
该文章对您有帮助吗?