Dataproc クラスタは、Compute Engine インスタンスにビルドされます。インスタンスから使用できる仮想化ハードウェア リソースを定義するには、マシンタイプを利用します。Compute Engine には、事前定義されたマシンタイプとカスタム マシンタイプの両方が用意されています。Dataproc クラスタでは、マスターノードとワーカーノードの両方に対して、事前定義されたタイプとカスタムタイプの両方を使用できます。
Dataproc クラスタは、次の Compute Engine の事前定義されたマシンタイプをサポートしています(マシンタイプの可用性はリージョンによって異なります)。
- N1、N2、N2D、E2、C4、N4 マシンタイプを含む汎用マシンタイプ(Dataproc は N1、N2、N2D、E2、C4、N4 カスタム マシンタイプもサポートします)。
制限事項:
- 2.0 以降のイメージの場合、n1-standard-1 マシンタイプはサポートされません(2.0 より前のイメージの場合、n1-standard-1 マシンタイプはおすすめしません。代わりに、メモリの大きいマシンタイプを使用します)。
- 共有コア マシンタイプはサポートされていません。サポートされていないマシンタイプは以下のとおりです。
- E2: e2-micro、e2-small、e2-medium 共有コア マシンタイプ
- N1: f1-micro、g1-small 共有コア マシンタイプ
- マシンタイプが C4 または N4 の場合、Dataproc はブートディスク タイプとして
hyperdisk-balanced
を選択します。
- コンピューティング最適化マシンタイプ: C2 と C2D のマシンタイプが含まれます。
- メモリ最適化マシンタイプ、これには M1 と M2 マシンタイプが含まれます。
- ARM マシンタイプ: T2A マシンタイプが含まれます。
カスタム マシンタイプ
Dataproc は、N1 シリーズのカスタム マシンタイプをサポートしています。
カスタム マシンタイプは、次のようなワークロードに適しています。
- 定義済みのマシンタイプに適していないワークロード。
- 処理能力やメモリがさらに必要だが、次のマシンタイプ レベルで提供されるアップグレードをすべては必要としないワークロード。
たとえば、ワークロードが n1-standard-4
インスタンスが提供する能力より高い処理能力を必要とするものの、以降のワークロードには n1-standard-8
インスタンスの能力が高すぎる場合。カスタム マシンタイプを使用すると、その中間にマスターノードやワーカーノードがあり、6 個の仮想 CPU と 25 GB のメモリを搭載した Dataproc クラスタを作成できます。
カスタム マシンタイプを指定する
カスタム マシンタイプは特別な 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 をご覧ください)。
カスタム マシンタイプの料金
カスタム マシンタイプの料金は、カスタムマシンで使用されているリソースに基づいています。コンピューティング リソースの費用には Dataproc の料金が追加されます。この料金は、クラスタに使用されている仮想 CPU(vCPU)の合計数に基づきます。
指定したマシンタイプで Dataproc クラスタを作成する
Console
Google Cloud コンソールで Dataproc の [クラスタの作成] ページの [ノードの構成] パネルで、クラスタのマスターノードとワーカーノードのマシン ファミリー、シリーズ、タイプを選択します。
gcloud コマンド
次のフラグを指定して gcloud dataproc clusters create コマンドを実行し、マスター マシンタイプまたはワーカー マシンタイプで Dataproc クラスタを作成します。
--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
... 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 ...
REST API
カスタム マシンタイプを含むクラスタを作成するには、cluster.create API リクエストで masterConfig
または workerConfig
InstanceGroupConfig の machineTypeUri
を設定します。
例:
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 } } } }
拡張メモリのあるカスタムメモリを持つ Dataproc クラスタを作成する
Dataproc は、vCPU あたり 6.5 GB の制限を超過する拡張メモリを持つカスタム マシンタイプをサポートしています(拡張メモリの料金をご覧ください)。
Console
Google Cloud コンソールで、Dataproc の [クラスタの作成] ページにある [ノードの構成] パネルから [ワーカーノード] セクションでマシンタイプのメモリをカスタマイズする際に、[メモリを拡張する] をクリックします。
gcloud コマンド
拡張メモリとカスタム CPU を持つクラスタを gcloud コマンドラインから作成するには、‑‑master-machine-type
フラグや ‑‑worker-machine-type
フラグに -ext
接尾辞を追加します。
例
次の gcloud コマンドラインのサンプルでは、各ノードに 1 つの CPU と 50 GB のメモリ(50 * 1024 = 51200)がある Dataproc クラスタを作成します。
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 * 1024 = 51200)が指定されています。
... "masterConfig": { "numInstances": 1, "machineTypeUri": "custom-1-51200-ext", ... }, "workerConfig": { "numInstances": 2, "machineTypeUri": "custom-1-51200-ext", ... ...
ARM マシンタイプ
Dataproc は、T2A マシンタイプなどの ARM マシンタイプを使用するノードがあるクラスタの作成をサポートしています。
要件と制限事項
- Dataproc イメージには ARM チップセットとの互換性が必要です(現在、ARM チップセットと互換性があるのは Dataproc 2.1-ubuntu20-arm イメージのみです)。このイメージは、多くのオプションの初期化コンポーネントと初期化アクションのコンポーネントをサポートしていません(2.1.x リリース バージョンをご覧ください)。
- クラスタに対して 1 つのイメージを指定する必要があるため、マスターノード、ワーカーノード、セカンダリ ワーカーノードは、選択した Dataproc ARM イメージとの互換性がある ARM マシンタイプを使用する必要があります。
- ARM マシンタイプとの互換性がない Dataproc 機能は使用できません(たとえば、ローカル SSD は T2A マシンタイプではサポートされていません)。
ARM マシンタイプで Dataproc クラスタを作成する
Console
現在、Google Cloud コンソールでは、Dataproc ARM マシンタイプのクラスタの作成はサポートされていません。
gcloud
ARM t2a-standard-4
マシンタイプを使用する Dataproc クラスタを作成するには、次の gcloud
コマンドをターミナル ウィンドウでローカルに実行するか、または Cloud Shell で実行します。
gcloud dataproc clusters create cluster-name \ --region=REGION \ --image-version=2.1-ubuntu20-arm \ --master-machine-type=t2a-standard-4 \ --worker-machine-type=t2a-standard-4
注:
REGION: クラスタが配置されるリージョン。
ARM イメージは
2.1.18-ubuntu20-arm
以降で利用できます。クラスタのカスタマイズに使用できるその他のコマンドライン フラグについては、gcloud dataproc clusters create のリファレンス ドキュメントをご覧ください。
*-arm images
は、インストール済みのコンポーネントと 2.1.x リリース バージョンのページに記載されている次のオプションのコンポーネントのみをサポートします(残りの 2.1 オプション コンポーネントとそのページに記載されているすべての初期化アクションはサポートされていません)。- Apache Hive WebHCat
- Docker
- Zookeeper(HA クラスタにインストール済み、HA 以外のクラスタにあるオプション コンポーネント)
API
次のサンプル Dataproc REST API の clusters.create リクエストは、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": "t2a-standard-4", "diskConfig": { "bootDiskSizeGb": 500, } }, "workerConfig": { "numInstances": 2, "machineTypeUri": "t2a-standard-4", "diskConfig": { "bootDiskSizeGb": 500, "numLocalSsds": 0 } }, "softwareConfig": { "imageVersion": "2.1-ubuntu20-arm" } } }
自然言語処理についてや、
- カスタム マシンタイプを持つ VM インスタンスの作成をご覧ください。
- Arm VM インスタンスの作成と起動をご覧ください。