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

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)に 1024 を掛けて、22.5 * 1024 = 23040 のようになります。

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

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

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

指定したマシンタイプでクラスタを作成する

Google Cloud コンソール

  • [クラスタの作成] ページを開きます。
  • [**ワーカーの構成**] で、マシン ファミリー、シリーズ、 タイプを選択します。
  • デフォルトでは、ドライバ(マスター)ノードの設定はプライマリ ワーカーの設定と同じです。 [追加構成] で [ドライバノード] を編集して、[デフォルトのドライバノードをプライマリ ワーカーと同じにする] チェックボックスをオフにし、ドライバノードの設定を指定します。
  • gcloud CLI コマンド

    次のフラグを使用して 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

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

    :

    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 は、 vCPU あたり 6.5 GB の制限 を超過する 拡張メモリ を持つカスタム マシンタイプをサポートしています(拡張メモリの料金をご覧ください)。

    Google Cloud コンソール

  • Managed Service for Apache Spark の [クラスタの作成] ページを開きます。
  • [**ワーカーの構成**] で、マシン ファミリー、シリーズ、 タイプを選択します。
  • デフォルトでは、ドライバ(マスター)ノードの設定はプライマリ ワーカーの設定と同じです。 [追加構成] で [ドライバノード] を編集して、[デフォルトのドライバノードをプライマリ ワーカーと同じにする] チェックボックスをオフにし、ドライバノードの設定を指定します。
  • gcloud CLI

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

    次の 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

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

    Arm マシンタイプでクラスタを作成する

    コンソール

    Arm マシンタイプを使用する Managed Service for Apache Spark クラスタを作成するには、次の操作を行います。

    1. Managed Service for Apache Spark の [クラスタの作成] ページを開きます。
    2. [**ワーカーの構成**] で、マシン ファミリー、シリーズ、 タイプを選択します。
    3. デフォルトでは、ドライバ(マスター)ノードの設定はプライマリ ワーカーの設定と同じです。 [追加構成] で [ドライバノード] を編集して、[デフォルトのドライバノードをプライマリ ワーカーと同じにする] チェックボックスをオフにし、ドライバノードの設定を指定します。

    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

    次の Dataproc 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"
        }
      }
    }
    

    次のステップ