サポートされているマシンタイプ

Managed Service for Apache Spark クラスタは、Compute Engine インスタンスにビルドされます。インスタンスから使用できる仮想化ハードウェア リソースを定義するには、マシンタイプを利用します。Compute Engine には、事前定義されたマシンタイプカスタム マシンタイプの両方が用意されています。Managed Service for Apache Spark クラスタでは、マスターノードとワーカーノードの両方に対して、事前定義されたタイプとカスタムタイプの両方を使用できます。

Managed Service for Apache Spark クラスタは、次の Compute Engine の事前定義されたマシンタイプをサポートしています(マシンタイプの可用性はリージョンによって異なります)。

  • N1、N2、N2D、E2、C3、C4、N4、N4D マシンタイプを含む汎用マシンタイプ(Managed Service for Apache Spark は N1、N2、N2D、E2、N4、N4D カスタム マシンタイプもサポートします)。

    制限事項:

    • 2.0 以降のイメージの場合、n1-standard-1 マシンタイプはサポートされません(2.0 より前のイメージの場合、n1-standard-1 マシンタイプはおすすめしません。代わりに、メモリの大きいマシンタイプを使用します)。
    • 共有コア マシンタイプはサポートされていません。サポートされていないマシンタイプは以下のとおりです。
      • E2: e2-micro、e2-small、e2-medium 共有コア マシンタイプ
      • N1: f1-micro、g1-small 共有コア マシンタイプ
    • マシンタイプが C4、N4、N4D の場合、Managed Service for Apache Spark はブートディスク タイプとして hyperdisk-balanced を選択します。
  • コンピューティング最適化マシンタイプ: C2 マシンタイプと C2D マシンタイプが含まれます。
  • メモリ最適化マシンタイプ。これには M1 と M2 マシンタイプが含まれます。
  • Arm マシンタイプC4A マシンタイプが含まれます。

カスタム マシンタイプ

Managed Service for Apache Spark は、N1、N2、N2D、E2、N4、N4D シリーズカスタム マシンタイプをサポートしています。

カスタム マシンタイプは、次のようなワークロードに適しています。

  • 定義済みのマシンタイプに適していないワークロード。
  • 処理能力やメモリがさらに必要だが、次のマシンタイプ レベルで提供されるアップグレードをすべては必要としないワークロード。

たとえば、ワークロードが n1-standard-4 インスタンスが提供する能力より高い処理能力を必要とするものの、以降のワークロードには n1-standard-8 インスタンスの能力が高すぎる場合。カスタム マシンタイプを使用すると、その中間にマスターノードやワーカーノードがあり、6 個の仮想 CPU と 25 GB のメモリを搭載した Managed Service for Apache Spark クラスタを作成できます。

カスタム マシンタイプを指定する

カスタム マシンタイプは特別な machine type 仕様を使用し、制限が適用されます。たとえば、6 個の仮想 CPU と 22.5 GB のメモリを搭載したカスタム VM のカスタム マシンタイプは custom-6-23040 です。

マシンタイプ指定の数値は、マシン内の仮想 CPU(vCPU)の数(6)とメモリ容量(23040)に対応しています。メモリ量は、ギガバイト単位のメモリ量に 1024 を掛けて計算されます(GB または MB でのメモリの表現を参照)。この例では、22.5(GB)に 1,024 を掛けて、22.5 * 1024 = 23040 のようになります。

クラスタを作成するときに、カスタム マシンタイプを指定します。クラスタの作成時に、マスターノードとワーカーノードの一方または両方に対してマシンタイプを設定できます。両方を設定した場合、マスターノードは、ワーカーが使用するカスタム マシンタイプとは異なるカスタム マシンタイプを使用できます。セカンダリ ワーカーが使用するマシンタイプはプライマリ ワーカーの設定に従うため、別途設定することはできません(セカンダリ ワーカー - プリエンプティブル VM と非プリエンプティブル VM をご覧ください)。

カスタム マシンタイプの料金

カスタム マシンタイプの料金は、カスタムマシンで使用されているリソースに基づいています。コンピューティング リソースの費用には Managed Service for Apache Spark の料金が追加されます。この料金は、クラスタに使用されている仮想 CPU(vCPU)の合計数に基づきます。

指定したマシンタイプで Managed Service for Apache Spark クラスタを作成する

コンソール

Google Cloud コンソールで Managed Service for Apache Spark の [クラスタの作成] ページの [ノードの構成] パネルで、クラスタのマスターノードとワーカーノードのマシン ファミリー、シリーズ、タイプを選択します。

gcloud コマンド

次のフラグを指定して gcloud dataproc clusters create コマンドを実行し、マスターまたはワーカーのマシンタイプを持つ Managed Service for Apache Spark クラスタを作成します。

  • --master-machine-type machine-type フラグを使用すると、クラスタ内のマスター VM インスタンス(HA クラスタを作成する場合はマスター インスタンス)で使用されるカスタム マシンタイプを設定できます。
  • --worker-machine-type custom-machine-type フラグを使用すると、クラスタ内のワーカー VM インスタンスで使用されるカスタム マシンタイプを設定できます。

:

gcloud dataproc clusters create test-cluster /
    --master-machine-type custom-6-23040 /
    --worker-machine-type custom-6-23040 /
    other args
Managed Service for Apache Spark クラスタを起動すると、クラスタの詳細がターミナル ウィンドウに表示されます。以下は、ターミナル ウィンドウに表示されるクラスタ プロパティのサンプルの一部です。
...
properties:
  distcp:mapreduce.map.java.opts: -Xmx1638m
  distcp:mapreduce.map.memory.mb: '2048'
  distcp:mapreduce.reduce.java.opts: -Xmx4915m
  distcp:mapreduce.reduce.memory.mb: '6144'
  mapred:mapreduce.map.cpu.vcores: '1'
  mapred:mapreduce.map.java.opts: -Xmx1638m
...

API

カスタム マシンタイプを含むクラスタを作成するには、cluster.create API リクエストで masterConfig または workerConfig InstanceGroupConfigmachineTypeUri を設定します。

:

POST /v1/projects/my-project-id/regions/is-central1/clusters/
{
  "projectId": "my-project-id",
  "clusterName": "test-cluster",
  "config": {
    "configBucket": "",
    "gceClusterConfig": {
      "subnetworkUri": "default",
      "zoneUri": "us-central1-a"
    },
    "masterConfig": {
      "numInstances": 1,
      "machineTypeUri": "n1-highmem-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
        "numLocalSsds": 0
      }
    },
    "workerConfig": {
      "numInstances": 2,
      "machineTypeUri": "n1-highmem-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
        "numLocalSsds": 0
      }
    }
  }
}

拡張メモリのあるカスタム マシンタイプを使用して Managed Service for Apache Spark クラスタを作成する

Managed Service for Apache Spark は、vCPU あたり 6.5 GB の制限を超過する拡張メモリを持つカスタム マシンタイプをサポートしています(拡張メモリの料金をご覧ください)。

コンソール

Google Cloud コンソールで、Managed Service for Apache Spark の [クラスタの作成] ページにある [ノードの構成] パネルから [マスターノード] セクションまたは [ワーカーノード] セクションでマシンタイプのメモリをカスタマイズする際に、[メモリを拡張する] をクリックします。

gcloud コマンド

拡張メモリとカスタム CPU を持つクラスタを gcloud コマンドラインから作成するには、‑‑master-machine-type フラグや ‑‑worker-machine-type フラグに -ext 接尾辞を追加します。

次の gcloud コマンドラインのサンプルでは、各ノードに 1 つの CPU と 50 GB のメモリ(50 * 1024 = 51200)がある Managed Service for Apache Spark クラスタを作成します。

gcloud dataproc clusters create test-cluster /
    --master-machine-type custom-1-51200-ext /
    --worker-machine-type custom-1-51200-ext /
    other args

API

Managed Service for Apache Spark REST API の clusters.create リクエストの次のサンプル <code.instancegroupconfig< code="" dir="ltr" translate="no"></code.instancegroupconfig<> JSON スニペットでは、各ノードに 1 つの CPU と 50 GB のメモリ(50 × 1,024 = 51,200)が指定されています。

...
    "masterConfig": {
      "numInstances": 1,
      "machineTypeUri": "custom-1-51200-ext",
    ...
    },
    "workerConfig": {
      "numInstances": 2,
      "machineTypeUri": "custom-1-51200-ext",
     ...
...

Arm マシンタイプ

Managed Service for Apache Spark は、C4A マシンタイプなどの Arm マシンタイプを使用するノードがあるクラスタの作成をサポートしています。

要件と制限事項

  • Managed Service for Apache Spark イメージは、Arm チップセットと互換性がある必要があります。Managed Service for Apache Spark の 2.1-ubuntu20-arm2.2-ubuntu22-arm2.3-ubuntu22-arm(およびそれ以降の -arm 接尾辞)イメージは、Arm チップセットと互換性があります。Arm 互換イメージは、イメージ リリース バージョンのページに記載されているように、多くのオプションのコンポーネントと初期化アクションのコンポーネントをサポートしていません。
  • クラスタに対して 1 つのイメージを指定する必要があるため、マスターノード、ワーカーノード、セカンダリ ワーカーノードは、選択した Managed Service for Apache Spark Arm イメージとの互換性がある Arm マシンタイプを使用する必要があります。
  • Arm マシンタイプとの互換性がない Managed Service for Apache Spark 機能は使用できません(たとえば、ローカル SSD は C4A マシンタイプではサポートされていません)。
  • Arm イメージは、プリインストールされたコンポーネントと、一部のオプション コンポーネントのみをサポートします。他のオプション コンポーネントとすべての初期化アクションはサポートされていません。

Arm マシンタイプで Managed Service for Apache Spark クラスタを作成する

コンソール

Arm マシンタイプを使用する Managed Service for Apache Spark クラスタを作成する手順は次のとおりです。

  1. Google Cloud コンソールで、Managed Service for Apache Spark の [Compute Engine で Dataproc クラスタを作成する] ページに移動します。

    Compute Engine で Dataproc クラスタを作成するに移動します

  2. [バージョニング] セクションで、[変更] をクリックして Arm チップセット イメージを選択します。

  3. [ノードの構成] パネルを選択します。

  4. 各クラスタノードの Arm シリーズ(C4A など)と Arm マシンタイプを選択します。

  5. 他のクラスタの詳細を確認または指定して、[作成] をクリックします。

gcloud

Arm マシンタイプを使用する Managed Service for Apache Spark クラスタを作成するには、次の gcloud コマンドをターミナル ウィンドウでローカルに実行するか、または Cloud Shell で実行します。この例では、2.1-ubuntu20-arm イメージと c4a-standard-4 Arm マシンタイプを指定します。

gcloud dataproc clusters create cluster-name \
    --region=REGION \
    --image-version=2.1-ubuntu20-arm \
    --master-machine-type=c4a-standard-4 \
    --worker-machine-type=c4a-standard-4

注:

  • REGION: クラスタが配置されるリージョン

  • クラスタのカスタマイズに使用できる追加のコマンドライン フラグについては、gcloud dataproc clusters create のリファレンス ドキュメントをご覧ください。

API

次の Managed Service for Apache Spark REST API clusters.create サンプル リクエストは、c4a-standard-4 Arm マシンタイプを使用するクラスタを作成します。

POST /v1/projects/my-project-id/regions/is-central1/clusters/
{
  "projectId": "my-project-id",
  "clusterName": "sample-cluster",
  "config": {
    "configBucket": "",
    "gceClusterConfig": {
      "subnetworkUri": "default",
      "zoneUri": "us-central1-a"
    },
    "masterConfig": {
      "numInstances": 1,
      "machineTypeUri": "c4a-standard-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
      }
    },
    "workerConfig": {
      "numInstances": 2,
      "machineTypeUri": "c4a-standard-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
        "numLocalSsds": 0
      }
    },
    "softwareConfig": {
      "imageVersion": "2.1-ubuntu20-arm"
    }
  }
}

次のステップ