Dataproc クラスタは、Compute Engine インスタンスにビルドされます。インスタンスから使用できる仮想化ハードウェア リソースを定義するには、マシンタイプを利用します。Compute Engine には、事前定義されたマシンタイプとカスタム マシンタイプの両方が用意されています。Dataproc クラスタでは、マスターノードとワーカーノードの両方に対して、事前定義されたタイプとカスタムタイプの両方を使用できます。
Dataproc クラスタは、次の Compute Engine の事前定義されたマシンタイプをサポートしています(マシンタイプの可用性はリージョンによって異なります)。
- N1、N2、N2D、E2、C3、C4、N4 マシンタイプを含む汎用マシンタイプ(Dataproc は N1、N2、N2D、E2、C3、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 マシンタイプ。C4A マシンタイプが含まれます。
カスタム マシンタイプ
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)に 1,024 を掛けて、22.5 * 1024 = 23040 のようになります。
上記の構文を使用して、クラスタでカスタム マシンタイプを指定します。クラスタの作成時に、マスターノードとワーカーノードの一方または両方に対してマシンタイプを設定できます。両方を設定した場合、マスターノードは、ワーカーが使用するカスタム マシンタイプとは異なるカスタム マシンタイプを使用できます。セカンダリ ワーカーが使用するマシンタイプはプライマリ ワーカーの設定に従うため、別途設定することはできません(セカンダリ ワーカー - プリエンプティブル VM と非プリエンプティブル VM をご覧ください)。
カスタム マシンタイプの料金
カスタム マシンタイプの料金は、カスタムマシンで使用されているリソースに基づいています。コンピューティング リソースの費用には Dataproc の料金が追加されます。この料金は、クラスタに使用されている仮想 CPU(vCPU)の合計数に基づきます。
指定したマシンタイプで Dataproc クラスタを作成する
コンソール
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 の制限を超過する拡張メモリを持つカスタム マシンタイプをサポートしています(拡張メモリの料金をご覧ください)。
コンソール
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 × 1,024 = 51,200)が指定されています。
...
"masterConfig": {
"numInstances": 1,
"machineTypeUri": "custom-1-51200-ext",
...
},
"workerConfig": {
"numInstances": 2,
"machineTypeUri": "custom-1-51200-ext",
...
...
ARM マシンタイプ
Dataproc は、C4A マシンタイプなどの ARM マシンタイプを使用するノードがあるクラスタの作成をサポートしています。
要件と制限事項
- Dataproc イメージには ARM チップセットとの互換性が必要です。Dataproc
2.1-ubuntu20-arm、2.2-ubuntu22-arm、2.3-ubuntu22-arm(およびそれ以降の-armサフィックス)のイメージは ARM チップセットと互換性があります。ARM 互換イメージは、イメージ リリース バージョンのページに記載されているように、多くのオプションのコンポーネントと初期化アクションのコンポーネントをサポートしていません。 - クラスタに対して 1 つのイメージを指定する必要があるため、マスターノード、ワーカーノード、セカンダリ ワーカーノードは、選択した Dataproc ARM イメージとの互換性がある ARM マシンタイプを使用する必要があります。
- ARM マシンタイプとの互換性がない Dataproc 機能は使用できません(たとえば、ローカル SSD は C4A マシンタイプではサポートされていません)。
- ARM イメージは、プリインストールされたコンポーネントと、一部のオプション コンポーネントのみをサポートします。他のオプション コンポーネントとすべての初期化アクションはサポートされていません。
ARM マシンタイプで Dataproc クラスタを作成する
コンソール
現在、 Google Cloud コンソールでは、Dataproc ARM マシンタイプのクラスタの作成はサポートされていません。
gcloud
ARM c4a-standard-4 マシンタイプを使用する Dataproc クラスタを作成するには、次の gcloud コマンドをターミナル ウィンドウでローカルに実行するか、または Cloud Shell で実行します。
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: クラスタが配置されるリージョン。
ARM イメージは
2.1.18-ubuntu20-arm、2.2.61-ubuntu22-arm、2.3.7-ubuntu22-arm以降で利用できます。クラスタのカスタマイズに使用できる追加のコマンドライン フラグについては、gcloud dataproc clusters create のリファレンス ドキュメントをご覧ください。
*-armイメージは、プリインストールされたコンポーネントと、2.1.x リリース バージョン、2.2.x リリース バージョン、2.3.x リリース バージョンに記載されている次のオプション コンポーネントのみをサポートします。他の 2.1、2.2、2.3 のオプション コンポーネントと、記載されているすべての初期化アクションはサポートされていません。- Apache Hive WebHCat
- Docker
- Zeppelin
- 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": "c4a-standard-4",
"diskConfig": {
"bootDiskSizeGb": 500,
}
},
"workerConfig": {
"numInstances": 2,
"machineTypeUri": "c4a-standard-4",
"diskConfig": {
"bootDiskSizeGb": 500,
"numLocalSsds": 0
}
},
"softwareConfig": {
"imageVersion": "2.1-ubuntu20-arm"
}
}
}
次のステップ
- コンピューティングでの Arm VM の詳細を確認する。
- カスタム マシンタイプの VM を作成する方法を確認する。
- Compute Engine インスタンスを作成して起動する方法を確認する。