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