gcloud CLI を使用して Dataproc クラスタを作成する

このページでは、Google Cloud CLI の gcloud コマンドライン ツールを使用して Dataproc クラスタを作成し、クラスタで Apache Spark ジョブを実行してから、クラスタ内のワーカー数を変更する方法について説明します。

API Explorer を使用したクイックスタートと同じまたは類似のタスクを行う方法は、 Google Cloud コンソール( Google Cloud コンソールを使用して Dataproc クラスタを作成する)と、クライアント ライブラリ(クライアント ライブラリを使用して Dataproc クラスタを作成する)を使用する方法をご覧ください。

始める前に

  1. Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud CLI をインストールします。

  3. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  4. gcloud CLI を初期化するには、次のコマンドを実行します。

    gcloud init
  5. Google Cloud プロジェクトを作成または選択します

    プロジェクトの選択または作成に必要なロール

    • プロジェクトを選択する: プロジェクトの選択に特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトであれば、どのプロジェクトでも選択できます。
    • プロジェクトを作成する: プロジェクトを作成するには、resourcemanager.projects.create 権限を含むプロジェクト作成者ロール(roles/resourcemanager.projectCreator)が必要です。ロールを付与する方法を確認する
    • Google Cloud プロジェクトを作成します。

      gcloud projects create PROJECT_ID

      PROJECT_ID は、作成する Google Cloud プロジェクトの名前に置き換えます。

    • 作成した Google Cloud プロジェクトを選択します。

      gcloud config set project PROJECT_ID

      PROJECT_ID は、 Google Cloud プロジェクトの名前に置き換えます。

  6. このガイドを完了するために必要な権限があることを確認します

  7. Google Cloud プロジェクトに対して課金が有効になっていることを確認します

  8. Dataproc API を有効にします。

    API を有効にするために必要なロール

    API を有効にするには、serviceusage.services.enable 権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。ロールを付与する方法を確認する

    gcloud services enable dataproc.googleapis.com
  9. Google Cloud CLI をインストールします。

  10. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  11. gcloud CLI を初期化するには、次のコマンドを実行します。

    gcloud init
  12. Google Cloud プロジェクトを作成または選択します

    プロジェクトの選択または作成に必要なロール

    • プロジェクトを選択する: プロジェクトの選択に特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトであれば、どのプロジェクトでも選択できます。
    • プロジェクトを作成する: プロジェクトを作成するには、resourcemanager.projects.create 権限を含むプロジェクト作成者ロール(roles/resourcemanager.projectCreator)が必要です。ロールを付与する方法を確認する
    • Google Cloud プロジェクトを作成します。

      gcloud projects create PROJECT_ID

      PROJECT_ID は、作成する Google Cloud プロジェクトの名前に置き換えます。

    • 作成した Google Cloud プロジェクトを選択します。

      gcloud config set project PROJECT_ID

      PROJECT_ID は、 Google Cloud プロジェクトの名前に置き換えます。

  13. このガイドを完了するために必要な権限があることを確認します

  14. Google Cloud プロジェクトに対して課金が有効になっていることを確認します

  15. Dataproc API を有効にします。

    API を有効にするために必要なロール

    API を有効にするには、serviceusage.services.enable 権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。ロールを付与する方法を確認する

    gcloud services enable dataproc.googleapis.com

必要なロール

このページの例を実行するには、特定の IAM ロールが必要です。組織のポリシーによっては、これらのロールがすでに付与されている場合があります。ロール付与を確認するには、ロールを付与する必要がありますか?をご覧ください。

ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

ユーザーロール

Dataproc クラスタの作成に必要な権限を取得するには、管理者に次の IAM ロールの付与を依頼します。

サービス アカウント ロール

Compute Engine のデフォルトのサービス アカウントに Dataproc クラスタを作成するために必要な権限を付与するには、プロジェクトの Compute Engine のデフォルトのサービス アカウントに Dataproc ワーカー roles/dataproc.worker)IAM ロールを付与するよう管理者に依頼してください。

クラスタの作成

example-cluster というクラスタを作成するには、次の gcloud Dataproc clusters create コマンドを実行します。

gcloud dataproc clusters create example-cluster --region=REGION

次のように置き換えます。

REGION: クラスタが配置されるリージョンを指定します。

ジョブの送信

pi のおおよその値を計算するサンプルの Spark ジョブを送信するには、次の gcloud Dataproc jobs submit spark コマンドを実行します。

gcloud dataproc jobs submit spark --cluster example-cluster \
    --region=REGION \
    --class org.apache.spark.examples.SparkPi \
    --jars file:///usr/lib/spark/examples/jars/spark-examples.jar -- 1000

注:

次のように置き換えます。

REGION: クラスタ リージョンを指定します。

  • ジョブは example-cluster で実行されます。
  • class には、pi の近似値を計算する SparkPi の main メソッドが含まれています。ということです
  • jar ファイルにはジョブコードが含まれています。
  • 1000 はジョブ パラメータです。ジョブが pi の値を計算するために実行するタスク(反復)の数を指定します。

ジョブの実行中の出力と最終出力がターミナル ウィンドウに表示されます。

Waiting for job output...
...
Pi is roughly 3.14118528
...
Job finished successfully.

クラスタの更新

クラスタ内のワーカーの数を変更するには、次のコマンドを実行します。

gcloud dataproc clusters update example-cluster \
    --region=REGION \
    --num-workers 5

コマンド出力にクラスタの詳細が表示されます。

workerConfig:
...
  instanceNames:
  - example-cluster-w-0
  - example-cluster-w-1
  - example-cluster-w-2
  - example-cluster-w-3
  - example-cluster-w-4
  numInstances: 5
statusHistory:
...
- detail: Add 3 workers.

ワーカーノードの数を元の値の 2 に減らすには、次のコマンドを実行します。

gcloud dataproc clusters update example-cluster \
    --region=REGION \
    --num-workers 2

クリーンアップ

このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、次の手順を実施します。

  1. example-cluster を削除するには、clusters delete コマンドを実行します。
    gcloud dataproc clusters delete example-cluster \
        --region=REGION
    

次のステップ