デフォルトでは、Container Service for Kubernetes (ACK) のE-MapReduce (EMR) は、x86アーキテクチャを使用するノードでSparkジョブを実行します。 ARMベースの仮想ノード (弾性コンテナインスタンス) でSparkジョブを実行することもできます。 このトピックでは、ARMベースの仮想ノードでSparkジョブを実行する方法について説明します。
目次
前提条件
EMRコンソールの [EMR on ACK] ページにSparkクラスターが作成されます。 詳細については、「クイックスタート」をご参照ください。
Elastic Container Instanceが有効化されています。 詳細については、「エラスティックコンテナインスタンスの使用」をご参照ください。
EMRおよびEMR on ACKの概要
EMRは、Alibaba Cloudが提供するオープンソースのビッグデータ処理ソリューションです。 詳細については、「」をご参照ください。E-MapReduceとは何ですか?
EMR on ACKは、ビッグデータジョブの開発と実行に使用できる新しいプラットフォームを提供します。 オープンソースのビッグデータサービスをACKクラスターにデプロイできます。 ACKを使用してサービスをデプロイし、コンテナ化アプリケーションを管理できます。 これにより、基盤となるクラスターリソースのO&Mコストが削減され、ビッグデータジョブに集中できるようになります。 詳細については、「EMR on ACKの概要」をご参照ください。
手順
ACKクラスターに仮想ノードを追加します。 詳細については、「方法2: ARMベースの仮想ノードの追加」をご参照ください。
EMR on ACKクラスターでSparkジョブを送信します。 詳細については、「Sparkジョブの送信」をご参照ください。
方法1: CRDを使用してSparkジョブを送信する
カスタムリソース定義 (CRD) を使用してジョブを送信する場合は、次のパラメーターを設定します。
image: この例では、registry-vpc.cn-hangzhou.aliyuncs.com/emr/spark-py:emr-3.3.1-1.1.7-armが使用されます。 cn-hangzhouを使用するリージョンのIDに置き換えます。
annotations: t o alibabacloud.com/burst-resource値を設定します: "eci_only" 。
nodeSelector: 値をkubernetes.io/arch: arm64に設定します。
サンプルコード:
方法2: Spark構成ファイルに基づいてSparkジョブを実行する
ARMベースのノードでSparkジョブを実行するには、Spark構成ファイルでイメージ、アノテーション、およびノードセレクタを構成します。
[spark-defaults.conf] タブに移動します。
[EMR on ACKコンソール] にログインし、管理するクラスターを見つけて、[操作] 列の [設定] をクリックします。
[設定] タブで、[spark-defaults.conf] タブをクリックします。
SparkクラスターのElastic Container Instanceを有効にします。
[spark-defaults.conf] タブで、[構成項目の追加] をクリックします。
[構成項目の追加] ダイアログボックスで、次の表に示す構成項目を追加します。
キー
説明
例
spark.kubernetes.container.image
Sparkイメージ。
registry-vpc.cn-hangzhou.aliyuncs.com/emr/spark-py:emr-3.3.1-1.1.7-arm
説明cn-hangzhouを使用するリージョンのIDに置き換えます。
spark.kubernetes.driver.annotation.alibabacloud.com/burst-resource
SparkドライバーがElastic Container Instanceを使用してSparkジョブを実行するかどうかを指定します。
eci_only
spark.kubernetes.driver.node.selector.kubernetes.io/arch
Sparkドライバのノードセレクタ。
arm64
spark.kubernetes.executor.annotation.alibabacloud.com/burst-resource
SparkエグゼキュータがElastic Container Instanceを使用してSparkジョブを実行するかどうかを指定します。
eci_only
spark.kubernetes.exe cutor.node.selector.kubernetes.io/arch
Sparkエグゼキュータのノードセレクタ。
arm64
[OK] をクリックします。
表示されるダイアログボックスで、[実行理由] パラメーターを設定し、[保存] をクリックします。
設定をデプロイします。
[設定] タブの下部で、[クライアント設定のデプロイ] をクリックします。
表示されるダイアログボックスで、[実行理由] パラメーターを設定し、[OK] をクリックします。
[確認] メッセージの [OK] をクリックします。