プリエンプティブ VM

Cloud Dataproc クラスタでは、標準の Compute Engine 仮想マシン(VM)に加え、プリエンプティブ VM とも呼ばれるプリエンプティブ VM インスタンスを使用できます。重要性の低いデータ処理の 1 時間あたりのコンピューティング費用を抑えたい場合や、大規模なクラスタの作成にかかる総費用を低く抑えたい場合には、プリエンプティブ インスタンスの使用をご検討ください。詳しくは、Cloud Dataproc の料金に関するドキュメントをご覧ください。

Cloud Dataproc でのプリエンプティブの動作

クラスタにプリエンプティブ インスタンスを追加すると、そのインスタンスではクラスタのプリエンプティブでないワーカーノードのマシンタイプが使用されます。たとえば、n1-standard-4 マシンタイプを使用するワーカーを含めてクラスタを作成した場合、そのクラスタに追加したすべてのプリエンプティブ インスタンスでも n1-standard-4 マシンが使用されます。クラスタに対してプリエンプティブ ワーカーを追加または削除しても、クラスタのプリエンプティブでないワーカーの数には影響を与えません。

プリエンプティブ インスタンスは他のタスクに必要な場合には再利用されるため、Cloud Dataproc はプリエンプティブ ワーカーのみが含まれているマネージド インスタンス グループにプリエンプティブ インスタンスをセカンダリ ワーカーとして追加します。マネージド グループには、再利用のために失われたワーカーが容量の許す限り自動的に再追加されます。たとえば、2 つのプリエンプティブ マシンが再利用され、クラスタから削除された場合、この 2 つのインスタンスは再追加できるだけの容量が使用できるようになればそのときにクラスタに再追加されます。

Cloud Dataproc クラスタでプリエンプティブ ワーカーを使用するときには、次のルールが適用されます。

  • 処理のみ - プリエンプティブはいつでも再利用できるため、プリエンプティブ ワーカーはデータを保存しません。Cloud Dataproc クラスタに追加されているプリエンプティブは、処理ノードとしてのみ機能します。
  • プリエンプティブのみのクラスタなし - クラスタのすべてのワーカーが失われないようにするため、Cloud Dataproc ではプリエンプティブのみのクラスタを作成できません。--num-preemptible-workers を指定した gcloud dataproc clusters create コマンドを使用し、--num-workers で多くの標準のワーカーも指定しなかった場合は、Cloud Dataproc が 2 つのプリエンプティブでないワーカーをクラスタに自動的に追加します。
  • 永続ディスクサイズ - デフォルトとして、すべてのプリエンプティブ ワーカーが 100GB またはメインワーカーのブート ディスク サイズ未満で作成されます。このディスク領域は、データのローカル キャッシングに使用され、HDFS 経由では使用できません。クラスタ作成時に gcloud dataproc clusters create --premptible-worker-boot-disk-size コマンドでデフォルトのディスクサイズをオーバーライドすることができます。このフラグは、クラスタの作成時にプリエンプティブ ワーカーが割り当てられなかった場合でも指定できます。

クラスタでのプリエンプティブの使用

Cloud Dataproc クラスタに使用されるプリエンプティブ インスタンスの追加、更新、削除には、Google Cloud Platform Console または Google Cloud SDK のいずれかを使用できます。

Google Cloud Platform Console の使用

GCP Console から Cloud Dataproc クラスタを作成するとき、プリエンプティブ ワーカーの数を指定できます。クラスタの作成後、GCP Console からクラスタを編集することで、プリエンプティブ ワーカーを追加および削除できます。

プリエンプティブ インスタンスがあるクラスタの作成

[Cloud Dataproc クラスタの作成] ページには、[プリエンプティブ ワーカー、バケット、ネットワーク、バージョン、初期化オプション、アクセス オプション] というタイトルの展開パネルがあります。

このパネルを開くと、[Preemptible worker nodes] セクションが表示されます。新しいクラスタにプリエンプティブ ワーカーを追加するには、[Nodes] 項目に正数を指定します。

プリエンプティブ インスタンスがあるクラスタの更新

クラスタの作成後、クラスタのプリエンプティブ ワーカーの数を編集できます。そのためには、クラスタ詳細ページの [設定] タブで [編集] ボタンをクリックします。

プリエンプティブ ワーカーの数を変更するには、[Preemptible worker nodes] 項目に新しい値を指定します。

[保存] をクリックしてクラスタを更新します。

クラスタからのプリエンプティブ インスタンスの削除

クラスタからすべてのプリエンプティブ インスタンスを削除するには、上記のようにクラスタを更新し、[Preemptible worker nodes] 項目に 0 を指定します。

Google Cloud SDK の使用

クラスタを作成するときに、クラスタにプリエンプティブ インスタンスを追加するには、gcloud dataproc clusters create コマンドを使用します。クラスタを作成した後でプリエンプティブ インスタンスを追加または削除するには、gcloud dataproc clusters update コマンドを使用します。どちらのコマンドでも、--num-preemptible-workers 引数を使用してクラスタで使用するプリエンプティブ インスタンスの数を指定します。

プリエンプティブ インスタンスがあるクラスタの作成

プリエンプティブ インスタンスがあるクラスタを作成するには、gcloud dataproc clusters create コマンドで --num-preemptible-workers 引数を使用します。

たとえば、次のコマンドでは、2 つのプリエンプティブ インスタンス(と 2 つのプリエンプティブでないインスタンス)を持つクラスタが「my-test-cluster」という名前で作成されます。

gcloud dataproc clusters create my-test-cluster --num-preemptible-workers 2
Waiting on operation [operations/projects/project-id/operations/...].
Waiting for cluster update operation...done.
Updated [https://dataproc.googleapis.com/...].
clusterName: my-test-cluster
  ...
secondaryWorkerConfiguration:
    - dataproc-1-sw-2skd
    - dataproc-1-sw-l20p
    isPreemptible: true
...

プリエンプティブ インスタンスがあるクラスタの更新

クラスタを更新してプリエンプティブ インスタンスを追加または削除するには、gcloud dataproc clusters update コマンドで --num-preemptible-workers 引数を使用します。たとえば、次のコマンドでは、2 つのプリエンプティブ インスタンスを使用するように「my-test-cluster」という名前のクラスタが更新されます。

gcloud dataproc clusters update my-test-cluster --num-preemptible-workers 2
Waiting on operation [operations/projects/project-id/operations/...].
Waiting for cluster update operation...done.
Updated [https://dataproc.googleapis.com/...].
clusterName: my-test-cluster
  ...
secondaryWorkerConfiguration:
    - dataproc-1-sw-2skd
    - dataproc-1-sw-l20p
    isPreemptible: true
...

クラスタからのプリエンプティブ インスタンスの削除

クラスタからすべてのプリエンプティブ ワーカーを削除するには、--num-preemptible-workers0 に設定した gcloud dataproc clusters update コマンドを使用します。たとえば、次のコマンドでは、my-test-cluster からすべてのプリエンプティブ ワーカーが削除されます。

gcloud dataproc clusters update my-test-cluster --num-preemptible-workers 0

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Dataproc ドキュメント
ご不明な点がありましたら、Google のサポートページをご覧ください。