Google Cloud Dataproc クラスタは、Google Compute Engine インスタンスに基づいて構築されます。インスタンスから使用できる仮想化ハードウェア リソースを定義するには、マシンタイプを利用します。Compute Engine には、事前定義されたマシンタイプとカスタム マシンタイプの両方が用意されています。Cloud Dataproc クラスタでは、マスターノードにもワーカーノードにも標準タイプとカスタムタイプの両方を使用できます。
カスタム マシンタイプのユースケース
カスタム マシンタイプのドキュメントで説明されているように、カスタム マシンタイプは次のワークロードに最適です。
- 定義済みのマシンタイプに適していないワークロード。
- 処理能力やメモリを増強する必要はあるものの、次のマシンタイプ レベルで提供されるアップグレードの全部は必要としないワークロード。
例
例として、n1-standard-4
インスタンスよりも高い処理能力を必要とするものの、次の上位の n1-standard-8
インスタンスでは能力が高すぎるワークロードがあるとします。カスタム マシンタイプを使用すると、その中間にマスターノードやワーカーノードがあり、6 個の仮想 CPU と 25 GB のメモリを搭載した Cloud Dataproc クラスタを作成できます。
料金
カスタム マシンタイプの料金は、カスタムマシンで使用されているリソースによって異なります。使用するコンピューティング リソースの費用には、Dataproc 料金が追加されます。この料金は、クラスタに使用されている仮想 CPU の合計数に基づきます。
Cloud Dataproc でのカスタム マシンタイプの使用
現在、カスタム マシンタイプを使用したクラスタを作成するには、Google Cloud SDK の gcloud dataproc
コマンドを使用する必要があります。
カスタム マシンタイプの理解
カスタム マシンタイプを持つクラスタを作成する前に、カスタム マシンタイプを持つ VM インスタンスの作成を参照して、カスタムタイプの使用や価格などの重要な考慮事項を理解してください。
カスタム マシンタイプでは、特別な machine type
指定を使用します。たとえば、6 個の仮想 CPU と 22.5 GB のメモリを搭載したカスタム VM のカスタム マシンタイプは次のように指定します。
custom-6-23040
マシンタイプに含まれる数値は、マシン内の仮想 CPU の数(この例の場合は 6
)とメモリ容量(この場合は 23040
)に対応しています。メモリ容量を求めるには、ギガバイト単位のメモリ容量に 1024
を乗算します。この例では、22.5(GB)に 1024 を乗算しています。
22.5 * 1024 = 23040
CPU とメモリの組み合わせに対する制限に従った上で、上記の構文を使用して、クラスタで使用するカスタム マシンタイプを指定できます。クラスタの作成時に、マスターノードとワーカーノードの一方または両方に対してマシンタイプを設定できます。両方を設定した場合、マスターノードは、ワーカーが使用するカスタム マシンタイプとは異なるカスタム マシンタイプを使用できます。プリエンプティブ(セカンダリ)ワーカーのマシンタイプの設定は、プライマリ ワーカーの設定に従うため、別途設定することはできません(Cloud Dataproc でのプリエンプティブの動作をご覧ください)。
カスタム マシンタイプを持つ Cloud Dataproc クラスタを作成する
gcloud コマンド
次のフラグを使用して gcloud dataproc clusters create コマンドを実行し、マスターまたはワーカー カスタム マシンタイプを持つ Cloud Dataproc クラスタを作成します。--master-machine-type custom-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 argsCloud Dataproc クラスタを起動すると、クラスタの詳細がターミナル ウィンドウに表示されます。以下は、ターミナル ウィンドウに表示されるクラスタ プロパティのサンプルの一部です。
... 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/global/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 } } } }
Console
[クラスタの作成] ページから Cloud Dataproc クラスタを作成する場合、[マスターノード] パネルまたは [ワーカーノード] パネルの [マシンタイプ] セクションで [カスタマイズ] をクリックしてから、コア数とメモリ量を入力します。コンソールのラベルとヘルプテキストは、有効なカスタム マシンタイプ値の選択に役立ちます。次のスクリーンショットは、各ノードに 6 つの仮想 CPU と 22.5 GB のメモリを持つクラスタを作成するためのマスターノードとワーカーノードの値を示しています。

CPU 拡張メモリ
Cloud Dataproc は、vCPU あたり 6.5 GB の制限を超過する拡張メモリを持つカスタム マシンタイプをサポートしています(拡張メモリの料金をご覧ください)。
拡張メモリの使用
gcloud コマンド
カスタム CPU と拡張メモリを持つクラスタを gcloud コマンドから作成するには、‑‑master-machine-type
フラグや ‑‑worker-machine-type
フラグに -ext
接尾辞を追加します。
例
次の gcloud コマンドラインのサンプルでは、各ノードに 1 つの CPU と 50 GB のメモリ(50 * 1024 = 51200)がある Cloud Dataproc クラスタを作成します。
gcloud dataproc clusters create test-cluster / --master-machine-type custom-1-51200-ext / --worker-machine-type custom-1-51200-ext / other args
REST API
次のサンプル JSON スニペットは、Cloud Dataproc REST API の clusters.create リクエスト内のもので、1 つの CPU と 50 GB のメモリ(50 * 1024 = 51200)を指定しています。
... "masterConfig": { "numInstances": 1, "machineTypeUri": "custom-1-51200-ext", ... }, "workerConfig": { "numInstances": 2, "machineTypeUri": "custom-1-51200-ext", ... ...
Console
GCP Console で、Cloud Dataproc の [クラスタの作成] ページにある [マスターノード] セクションや [ワーカーノード] セクションでマシンタイプのメモリをカスタマイズする際に、[メモリを拡張する] をクリックします。
詳細情報
カスタム マシンタイプを持つ VM インスタンスの作成をご覧ください。