本文為您介紹如何提交Flink作業。
前提條件
已在E-MapReduce on ACK控制台建立Flink叢集,詳情請參見快速入門。
方式一:通過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工具串連叢集。
建立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控制台,在叢集管理頁面查看。