全部產品
Search
文件中心

E-MapReduce:提交Flink作業

更新時間:Jan 21, 2025

本文為您介紹如何提交Flink作業。

前提條件

已在E-MapReduce on ACK控制台建立Flink叢集,詳情請參見快速入門

方式一:通過ACK控制台提交作業

  1. 登入EMR on ACK

  2. 在EMR on ACK頁面,單擊目的地組群所在行所屬ACK叢集列的連結。

  3. 容器組頁面,單擊右上方的使用YAML建立資源

  4. 建立頁面,從樣本模板列表中,選擇自訂,模板內容請複製以下內容,然後單擊建立

    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工具提交作業

  1. 通過kubectl串連Kubernetes叢集,詳情請參見擷取叢集KubeConfig並通過kubectl工具串連叢集

  2. 建立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的配置。

  3. 執行以下命令,提交作業。

    kubectl apply -f basic-emr-example.yaml -namespace <叢集對應的namespace>
    說明

    本文範例程式碼中的<叢集對應的namespace>,需要替換為叢集的命名空間,您可以登入E-MapReduce on ACK控制台,在叢集管理頁面查看。