Create a development machine in Compute Engine

進行状況を確認

/ 5

Install Software in the development machine

進行状況を確認

/ 5

Create a GCS bucket

進行状況を確認

/ 5

Download some sample images into your bucket

進行状況を確認

/ 5

Create a Cloud Managed Apache Spark cluster

進行状況を確認

/ 5

Submit a job to the Cloud Managed Apache Spark Cluster

進行状況を確認

/ 5

このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。

GSP010

Google Cloud セルフペース ラボ

概要

このハンズオンラボでは、マネージド Apache Spark を使用して、コンピューティング負荷の高い画像処理タスクをクラスタのマシンに分散する方法について学びます。これは科学データを処理する一連のラボの一部です。

学習内容

  • Apache Spark があらかじめインストールされたマネージド Apache Spark クラスタを作成する方法。
  • まだクラスタにインストールされていない外部パッケージを使用するジョブを作成して実行する方法。
  • クラスタをシャットダウンする方法。

前提条件

このラボは上級者向けです。マネージド Apache Spark と Apache Spark の基本的な知識があることが推奨されますが、必須ではありません。これらのサービスに関して必要な知識を身につけるには、以下のラボを受講してください。

準備ができたら下にスクロールして、このラボで使用するサービスについて詳しく学んでいきましょう。

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 右側の [ラボの設定とアクセス] パネルには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • このラボで使用する一時的な認証情報(ユーザー名とパスワード)
    • このラボを行うために必要なその他の情報(ある場合)

    ラボのタイマーはページの上部に表示され、残り時間が示されます。

  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示された場合は、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの設定とアクセス] パネルでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの設定とアクセス] パネルでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで指定された認証情報を使用する必要があります。ご自身の Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後のページはクリックして先に進みます。

    • 利用規約に同意します。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

しばらくすると、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニューのアイコンと検索フィールド

はじめに

マネージド Apache Spark は、オープンソースのデータツールを利用してバッチ処理、クエリ実行、ストリーミング、ML を行えるマネージド Spark / Hadoop サービスです。マネージド Apache Spark の自動化機能を利用すると、クラスタを速やかに作成し、簡単に管理できます。また、不要なときにはクラスタを無効にして費用を節約できます。管理にかかる時間と費用が削減されるので、開発チームは本来の業務やデータに集中することができます。

コンピューティング負荷の高いジョブがあり、以下の条件が満たされる場合は、マネージド Apache Spark を使用してスケールアウトすることを検討してください。

  1. データのサブセットをそれぞれ異なるマシンで処理できる、驚異的並列ジョブである。
  2. 計算処理を行う Apache Spark コードがすでにあるか、Apache Spark の基本知識がある。
  3. すべてのデータ サブセットの処理をほぼ均一に分散できる。

必要な処理の量がサブセットによって異なる場合(または Apache Spark の知識がまだない場合)は、自動スケーリング データ パイプラインに対応している Apache Beam を Cloud Dataflow で活用するほうがより有効なオプションとなります。

このラボでは、OpenCV で指定した一連の画像処理ルールを使用して、画像に含まれる顔を枠で囲むジョブを実行します。この種の処理には、このように手動でコーディングしたルールより Vision API の方が適していますが、このラボでは、コンピューティング負荷の高いジョブを分散方式で実行することを目的としています。

タスク 1. Compute Engine で開発マシンを作成する

まず、サービスをホストする仮想マシンを作成します。

  1. Cloud コンソールで、[Compute Engine] > [VM インスタンス] > [インスタンスを作成] に移動します。

[インスタンスを作成] ボタンへのナビゲーション パス。ハイライト表示されている

  1. [マシンの構成] で、

    以下の値を選択します。

    • [名前]: devhost
    • [シリーズ]: E2
    • [マシンタイプ]: e2-standard-2(2 vCPU)
  2. [セキュリティ] をクリックします。

    • [アクセス スコープ] セクションで、[すべての Cloud API に完全アクセス権を許可] を選択します。
  3. [作成] をクリックします。この仮想マシンを開発用の bastion(踏み台)インスタンスとして使用します。

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。

Compute Engine で開発マシンを作成する。
  1. 次に、コンソールで [SSH] ボタンをクリックして、このインスタンスに SSH 接続します。

タスク 2. ソフトウェアをインストールする

次に、ジョブを実行するソフトウェアを設定します。sbt(オープンソースのビルドツール)を使用して、マネージド Apache Spark クラスタに送信するジョブの JAR をビルドします。この JAR には、プログラムと、ジョブを実行するために必要なパッケージが格納されます。このジョブでは、Cloud Storage バケットに保存されている一連の画像ファイルで顔を検出し、顔を枠で囲んだ画像ファイルを Cloud Storage の同じバケットまたは別のバケットに書き出します。

  1. Scala と sbt を設定します。SSH ウィンドウで、以下のコマンドを使用して Scalasbt をインストールします。これにより、コードをコンパイルできるようになります。
sudo apt-get install -y dirmngr unzip apt-transport-https bc scala sudo apt-get update sudo mkdir -p /etc/apt/keyrings curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x99E82A75642AC823" | sudo gpg --dearmor -o /etc/apt/keyrings/scalasbt-archive-keyring.gpg echo "deb [signed-by=/etc/apt/keyrings/scalasbt-archive-keyring.gpg] https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.list sudo apt-get update sudo apt-get install -y sbt

次に、Feature Detector のファイルをビルドします。このラボのコードは、GitHub のマネージド Apache Spark リポジトリに存在するソリューションを少し変更したものです。コードをダウンロードしてから、cd でこのラボのディレクトリに移動して、Feature Detector の「fat JAR」をビルドします。これを後ほどマネージド Apache Spark に送信します。

  1. SSH ウィンドウで以下のコマンドを実行します。
gcloud storage cp gs://spls/gsp124/cloud-dataproc.zip . unzip cloud-dataproc.zip cd cloud-dataproc/codelabs/opencv-haarcascade echo "sbt.version=1.9.8" > project/build.properties
  1. ビルドを開始します。次のコマンドを実行すると、Feature Detector の「fat JAR」がビルドされて、マネージド Apache Spark に送信できるようになります。
sed -i 's/scalaVersion := "2.12.*/scalaVersion := "2.12.19"/' build.sbt sbt assembly 注: このステップには 5 分ほど時間がかかります。完了するまで、しばらくお待ちください。

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。

開発マシンにソフトウェアをインストールする。

タスク 3. Cloud Storage バケットを作成して画像を収集する

Feature Detector のファイルがビルドされたら、Cloud Storage バケットを作成してサンプル画像をいくつか追加します。

  1. バケットの名前に使用するため、プロジェクト ID を取得します。
GCP_PROJECT=$(gcloud config get-value core/project)
  1. バケットに名前を付けて、その名前にシェル変数を設定します。このシェル変数をコマンドで使用してバケットを参照します。
MYBUCKET="${USER//google}-image-${RANDOM}" echo MYBUCKET=${MYBUCKET}
  1. gcloud とともに Cloud SDK に含まれている gsutil プログラムを使用して、サンプル画像を保存するバケットを作成します。
gcloud storage buckets create gs://${MYBUCKET}

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。

Cloud Storage バケットを作成する。
  1. 作成したバケットにサンプル画像をダウンロードします。
curl https://www.publicdomainpictures.net/pictures/20000/velka/family-of-three-871290963799xUk.jpg | gcloud storage cp - gs://${MYBUCKET}/imgs/family-of-three.jpg curl https://www.publicdomainpictures.net/pictures/10000/velka/african-woman-331287912508yqXc.jpg | gcloud storage cp - gs://${MYBUCKET}/imgs/african-woman.jpg curl https://www.publicdomainpictures.net/pictures/10000/velka/296-1246658839vCW7.jpg | gcloud storage cp - gs://${MYBUCKET}/imgs/classroom.jpg

以下の画像が Cloud Storage バケットにダウンロードされます。

3 人家族

女性

教室

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。

サンプル画像をバケットにダウンロードする。
  1. 次のコマンドを実行してバケットの内容を確認します。
gcloud storage ls -R gs://${MYBUCKET}

出力:

gs://gcpstaging20392-student-image-23218/imgs/: gs://gcpstaging20392-student-image-23218/imgs/african-woman.jpg gs://gcpstaging20392-student-image-23218/imgs/classroom.jpg gs://gcpstaging20392-student-image-23218/imgs/family-of-three.jpg `

タスク 4. マネージド Apache Spark クラスタを作成する

  1. SSH ウィンドウで以下のコマンドを実行して、クラスタに名前を付けて MYCLUSTER 変数を設定します。この変数をコマンドで使用してクラスタを参照します。
MYCLUSTER="${USER/_/-}-qwiklab" echo MYCLUSTER=${MYCLUSTER}
  1. 使用するグローバルの Compute Engine ゾーンを設定し、新しいクラスタを作成します。
gcloud config set dataproc/region {{{project_0.default_region | "REGION"}}} gcloud dataproc clusters create ${MYCLUSTER} \ --bucket=${MYBUCKET} \ --worker-machine-type=e2-standard-2 \ --master-machine-type=e2-standard-2 \ --initialization-actions=gs://spls/gsp010/install-libgtk.sh \ --image-version=2.0 \ --worker-boot-disk-size=30GB \ --master-boot-disk-size=30GB
  1. リージョンではなくゾーンの使用を求めるプロンプトが表示された場合は、「Y」を入力します。

完了までに数分かかります。このラボでは、2 つのワーカーノードを含むデフォルトのクラスタ設定で十分です。クラスタで使用されるコアの総数を減らすために、ワーカーとマスターの両方のマシンタイプに e2-standard-2 を指定しています。

initialization-actions フラグでは、クラスタの各マシンに libgtk2.0-dev ライブラリをインストールするスクリプトを渡します。このライブラリはコードを実行するために必要となります。

注: クラスタの作成に失敗した場合は、クラスタを削除して(gcloud dataproc clusters delete ${MYCLUSTER})、前のクラスタ作成コマンドを再試行してください。

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。

マネージド Apache Spark クラスタを作成する 注: コマンドライン フラグを使用したクラスタ設定のカスタマイズについて詳しくは、Cloud SDK の gcloud dataproc clusters create reference をご覧ください。

タスク 5. マネージド Apache Spark クラスタにジョブを送信する

このラボで実行するプログラムは顔検出に使用されるため、顔を表す haar 分類器を入力する必要があります。haar 分類器とは、プログラムで検出する特徴を記述するために使用される XML ファイルです。ここでは、haar 分類器のファイルをダウンロードし、マネージド Apache Spark クラスタにジョブを送信する際にその Cloud Storage パスを最初の引数として指定します。

  1. SSH ウィンドウで次のコマンドを実行して、顔検出の構成ファイルをバケットに読み込みます。
curl https://raw.githubusercontent.com/opencv/opencv/master/data/haarcascades/haarcascade_frontalface_default.xml | gcloud storage cp - gs://${MYBUCKET}/haarcascade_frontalface_default.xml
  1. Cloud Storage バケットの imgs ディレクトリにアップロードした一連の画像を Feature Detector への入力として使用します。そのディレクトリのパスをジョブ送信コマンドの 2 番目の引数として指定する必要があります。
  • ジョブをマネージド Apache Spark に送信します。
cd ~/cloud-dataproc/codelabs/opencv-haarcascade gcloud dataproc jobs submit spark \ --cluster ${MYCLUSTER} \ --jar target/scala-2.12/feature_detector-assembly-1.0.jar -- \ gs://${MYBUCKET}/haarcascade_frontalface_default.xml \ gs://${MYBUCKET}/imgs/ \ gs://${MYBUCKET}/out/

2 番目の引数で指定した Cloud Storage バケットに他の画像を追加して使用することもできます。

  1. ジョブをモニタリングするには、Cloud Platform コンソールで、ナビゲーション メニュー > [すべてのプロダクトを表示] を選択し、[アナリティクス] で [マネージド Apache Spark] > [ジョブ] をクリックします。

成功を示すステータスが表示されたら、次の手順に進みます。

ジョブの出力に成功ステータスが表示されている

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。

マネージド Apache Spark クラスタにジョブを送信する。
  1. ジョブが完了したら、ナビゲーション メニュー > [Cloud Storage] に移動し、作成したバケット(ユーザー名の後に student-image と乱数が追加された名前のバケット)を見つけてクリックします。

  2. Out ディレクトリにある任意の画像をクリックします。

  3. [ダウンロード] アイコンをクリックすると、その画像がパソコンにダウンロードされます。

顔検出は正確に機能しましたか。この種の処理には、このように手動でコーディングされたルールより Vision API の方が適しています。次のステップで確認してみましょう。

  1. (省略可)作成したバケットの imgs フォルダに移動して、アップロードした他の画像をクリックし、3 つのサンプル画像をダウンロードしてパソコンに保存します。

  2. このリンクをクリックして Vision API のページに移動し、[Try the API] セクションまで下にスクロールして、バケットからダウンロードした画像をアップロードします。数秒で画像検出の結果が表示されます。基盤となる ML モデルは継続的に改良されているため、実際の結果は以下と異なる場合があります。

女性の顔検出 教室内の顔検出 3 人家族の顔検出

  1. (省略可)Feature Detector の改良にも挑戦してみてください。FeatureDetector のコードを編集して、sbt assemblygcloud dataprocjobs submit コマンドを再実行します。

タスク 6. 理解度チェック

今回のラボで学習した内容の理解を深めていただくため、以下の多肢選択式問題を用意しました。正解を目指して頑張ってください。

お疲れさまでした

ここでは、マネージド Apache Spark クラスタを作成してジョブを実行する方法を学習しました。

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2026 年 7 月 6 日

ラボの最終テスト日: 2026 年 7 月 6 日

Copyright 2026 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボを実行するには、シークレット モードまたはシークレット ブラウジング ウィンドウを使用することをおすすめします。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。