すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:Flinkジョブの送信

最終更新日:Jan 11, 2025

このトピックでは、Flinkジョブを送信する方法について説明します。

前提条件

新しいAlibaba Cloud E-MapReduce(EMR)コンソールのEMR on ACKページで、Flinkクラスタが作成されます。 詳細については、「はじめに」をご参照ください。

方法 1:ACKコンソールを使用する

  1. EMRコンソール にログオンします。 左側のナビゲーションペインで、EMR on ACK をクリックします。

  2. [EMR On ACK] ページで、指定されたEMRクラスタを見つけ、[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 が使用されています。 別のバージョンのFlinkを使用する場合は、EMRコンソールのバージョン情報に基づいて flinkVersion パラメーターを設定します。

方法 2:kubectlを使用する

  1. kubectlを使用して、Alibaba Cloud Container Service for Kubernetes(ACK)クラスタに接続します。 詳細については、「クラスタのkubeconfigファイルを取得し、kubectlを使用してクラスタに接続する」をご参照ください。

    APIオペレーションを呼び出すことで、ACKクラスタに接続することもできます。 詳細については、「Kubernetes APIの使用」をご参照ください。

  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 が使用されています。 別のバージョンのFlinkを使用する場合は、ビジネス要件に基づいて flinkVersion パラメーターを設定します。

  3. 次のコマンドを実行して、Flinkジョブを送信します。

    kubectl apply -f basic-emr-example.yaml -namespace <Namespace in which the cluster resides>
    説明

    <Namespace in which the cluster resides> をビジネス要件に基づいて名前空間に置き換えます。名前空間を表示するには、EMR コンソールにログインし、[クラスターの詳細] タブに移動します。