このページでは、Google Cloud CLI の gcloud コマンドライン ツールを使用して Dataproc クラスタを作成し、クラスタで Apache Spark ジョブを実行してから、クラスタ内のワーカー数を変更する方法について説明します。
API Explorer を使用したクイックスタートと同じまたは類似のタスクを行う方法は、 Google Cloud コンソール( Google Cloud コンソールを使用して Dataproc クラスタを作成する)と、クライアント ライブラリ(クライアント ライブラリを使用して Dataproc クラスタを作成する)を使用する方法をご覧ください。
始める前に
- Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init -
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 プロジェクトの名前に置き換えます。
Dataproc API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。ロールを付与する方法を確認する。gcloud services enable dataproc.googleapis.com
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init -
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 プロジェクトの名前に置き換えます。
Dataproc API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。ロールを付与する方法を確認する。gcloud services enable dataproc.googleapis.com
必要なロール
このページの例を実行するには、特定の IAM ロールが必要です。組織のポリシーによっては、これらのロールがすでに付与されている場合があります。ロール付与を確認するには、ロールを付与する必要がありますか?をご覧ください。
ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
ユーザーロール
Dataproc クラスタの作成に必要な権限を取得するには、管理者に次の IAM ロールの付与を依頼します。
-
プロジェクトに対する Dataproc 編集者 (
roles/dataproc.editor) -
Compute Engine のデフォルトのサービス アカウントに対するサービス アカウント ユーザー (
roles/iam.serviceAccountUser)
サービス アカウント ロール
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 アカウントに課金されないようにするには、次の手順を実施します。
example-clusterを削除するには、clusters deleteコマンドを実行します。gcloud dataproc clusters delete example-cluster \ --region=REGION
次のステップ
- Spark Scala ジョブを記述して実行する方法を学習する。