このページでは、Google Cloud CLI gcloud コマンドライン ツールを使用して Managed Service for Apache Spark クラスタを作成し、クラスタで Apache Spark ジョブを実行してから、クラスタ内のワーカー数を変更する方法について説明します。
API Explorer を使用したクイックスタートと同じまたは類似のタスクを行う方法は、API Explorer、 Google Cloud コンソール(Google Cloud コンソールを使用してクラスタを作成する)と、クライアント ライブラリ(クライアント ライブラリを使用してクラスタを作成する)を使用する方法をご覧ください。
始める前に
-
Google Cloud CLI をインストールします。
-
フェデレーション ID(連携 ID)を使用するように gcloud CLI を構成します。
詳細については、連携 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 を有効にするには、
serviceusage.services.enable権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を通じてこの権限が付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を通じてこの権限を取得できます。ロールを付与する方法をご覧ください。gcloud services enable dataproc.googleapis.com
必要なロール
このページの例を実行するには、特定の IAM ロールが必要です。組織のポリシーによっては、これらのロールがすでに付与されている場合があります。ロールの付与を確認するには、 ロールを付与する必要がありますか?をご覧ください。
ロールの付与については、 プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
ユーザーロール
Managed Service for Apache Spark クラスタを作成するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
- Dataproc 編集者 (
roles/dataproc.editor)プロジェクトに対する - Compute Engine のデフォルトのサービス アカウントに対する サービス アカウント ユーザー(
roles/iam.serviceAccountUser)
サービス アカウント ロール
Compute Engine のデフォルト サービス アカウントに、Managed Service for Apache Spark クラスタを作成するために必要な 権限を付与するには、プロジェクトに対する次の IAM ロールを Compute Engine のデフォルト サービス アカウントに付与するよう管理者に依頼します。
-
すべて:
Dataproc ワーカー (
roles/dataproc.worker)
クラスタの作成
example-cluster というクラスタを作成するには、次の gcloud
Managed Service for Apache Spark clusters
create コマンドを実行します。
gcloud dataproc clusters create example-cluster --region=REGION
次のように置き換えます。
REGION:クラスタが配置されるリージョン を指定します。
ジョブの送信
pi のおおよその値を計算するサンプルの Spark ジョブを送信するには、次の gcloud Managed Service for Apache Spark 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 ファイルにはジョブコードが含まれています。注:
file:///usr/lib/spark/examples/jars/spark-examples.jarは、クラスタにプリインストールされているサンプル jar です。カスタム ジョブの場合は、Cloud Storage で jar ファイルを指定します(ジョブを送信するをご覧ください)。1000はジョブパラメータです。ジョブがpiの値を計算するために実行するタスク(反復)の数を指定します。
ジョブの実行中の出力と最終出力がターミナル ウィンドウに表示されます。
Waiting for job output... ... Pi is roughly 3.14118528 ... Job finished successfully.
クラスタの更新
クラスタ内のワーカーの数を 5 に変更するには、次のコマンドを実行します。
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 ジョブを記述して実行する 方法を学習する。