Tous les produits
Search
Centre de documentation

E-MapReduce:Soumettre une tâche Flink

Dernière mise à jour :Sep 21, 2026

Cette rubrique explique comment soumettre une tâche Flink.

Prérequis

Vous avez créé un cluster Flink dans la console EMR on ACK. Pour plus d'informations, consultez la section Prise en main.

Remarques

Dans les exemples de cette rubrique, le fichier JAR est déjà intégré à l'image. Si vous utilisez votre propre fichier JAR, téléchargez-le sur Alibaba Cloud OSS. Pour plus d'informations, consultez la section Téléchargement simple.

Remplacez ensuite local:///opt/flink/examples/streaming/StateMachineExample.jar dans la configuration par le chemin d'accès à votre fichier JAR sur Alibaba Cloud OSS. Le chemin doit respecter le format suivant : oss://<yourBucketName>/<path>.jar.

Méthode 1 : Soumettre une tâche depuis la console ACK

  1. Connectez-vous à la console EMR on ACK.

  2. Sur la page EMR on ACK, localisez le cluster cible et cliquez sur le lien figurant dans la colonne ACK Cluster.

  3. Sur la page Pods, cliquez sur Create Resources in YAML en haut à droite.

  4. Sur la page create, sélectionnez Custom dans la liste Sample Template, collez le contenu suivant dans l'éditeur, puis cliquez sur create.

    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
    Remarque

    Cet exemple utilise Flink 1.13. Si vous utilisez une version différente de Flink, mettez à jour le paramètre flinkVersion en conséquence.

Méthode 2 : Soumettre une tâche à l'aide de kubectl

  1. Connectez-vous à votre cluster Kubernetes à l'aide de kubectl. Pour plus d'informations, consultez la section Obtenir le fichier KubeConfig d'un cluster et utiliser kubectl pour se connecter au cluster.

    Vous pouvez également vous connecter au cluster Kubernetes par d'autres méthodes, telles qu'une API. Pour plus d'informations, consultez la section Utiliser l'API Kubernetes.

  2. Créez un fichier nommé basic-emr-example.yaml avec le contenu suivant.

    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
    Remarque
    • Vous pouvez utiliser un nom de fichier personnalisé. Cet exemple utilise basic-emr-example.yaml.

    • Cet exemple utilise Flink 1.13. Si vous utilisez une version différente de Flink, mettez à jour le paramètre flinkVersion en conséquence.

  3. Exécutez la commande suivante pour soumettre la tâche.

    kubectl apply -f basic-emr-example.yaml --namespace <cluster-namespace>
    Remarque

    Remplacez <cluster-namespace> par le namespace de votre cluster. Vous trouverez le namespace sur la page de gestion du cluster dans la console EMR on ACK.