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

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

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

始める前に

  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 ロールは必要ありません。ロールが付与されているプロジェクトを選択できます。
    • プロジェクトを作成する: プロジェクトを作成するには、プロジェクト作成者ロール (roles/resourcemanager.projectCreator)が必要です。これには resourcemanager.projects.create 権限が含まれています。詳しくは、ロールを付与する方法をご覧ください。
    • プロジェクトを作成する 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 を有効にするには、 権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。serviceusage.services.enable詳しくは、ロールを付与する方法をご覧ください。

    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 ロールは必要ありません。ロールが付与されているプロジェクトを選択できます。
    • プロジェクトを作成する: プロジェクトを作成するには、プロジェクト作成者ロール (roles/resourcemanager.projectCreator)が必要です。これには resourcemanager.projects.create 権限が含まれています。詳しくは、ロールを付与する方法をご覧ください。
    • プロジェクトを作成する 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 を有効にするには、 権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。serviceusage.services.enable詳しくは、ロールを付与する方法をご覧ください。

    gcloud services enable dataproc.googleapis.com

必要なロール

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

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

ユーザーロール

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

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

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

クラスタの作成

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
    

次のステップ