このトピックでは、Flinkジョブを送信する方法について説明します。
前提条件
新しいAlibaba Cloud E-MapReduce(EMR)コンソールのEMR on ACKページで、Flinkクラスタが作成されます。 詳細については、「はじめに」をご参照ください。
方法 1:ACKコンソールを使用する
EMRコンソール にログオンします。 左側のナビゲーションペインで、EMR on ACK をクリックします。
[EMR On ACK] ページで、指定されたEMRクラスタを見つけ、[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 が使用されています。 別のバージョンのFlinkを使用する場合は、EMRコンソールのバージョン情報に基づいて flinkVersion パラメーターを設定します。
方法 2:kubectlを使用する
kubectlを使用して、Alibaba Cloud Container Service for Kubernetes(ACK)クラスタに接続します。 詳細については、「クラスタのkubeconfigファイルを取得し、kubectlを使用してクラスタに接続する」をご参照ください。
APIオペレーションを呼び出すことで、ACKクラスタに接続することもできます。 詳細については、「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 が使用されています。 別のバージョンのFlinkを使用する場合は、ビジネス要件に基づいて flinkVersion パラメーターを設定します。
次のコマンドを実行して、Flinkジョブを送信します。
kubectl apply -f basic-emr-example.yaml -namespace <Namespace in which the cluster resides>説明<Namespace in which the cluster resides>をビジネス要件に基づいて名前空間に置き換えます。名前空間を表示するには、EMR コンソールにログインし、[クラスターの詳細] タブに移動します。