Create a development machine in Compute Engine

Check my progress

/ 5

Install Software in the development machine

Check my progress

/ 5

Create a GCS bucket

Check my progress

/ 5

Download some sample images into your bucket

Check my progress

/ 5

Create a Cloud Managed Apache Spark cluster

Check my progress

/ 5

Submit a job to the Cloud Managed Apache Spark Cluster

Check my progress

/ 5

This lab may incorporate AI tools to support your learning.

GSP010

Google Cloud 自學實驗室

總覽

在本實作實驗室,您將瞭解如何使用 Managed Apache Spark,將運算量大的圖像處理工作分配到機器叢集。本實驗室屬於科學資料處理實驗室系列。

課程內容

  • 瞭解如何建立已預先安裝 Apache Spark 的 Managed Apache Spark 叢集。
  • 瞭解如何建構及執行使用外部套件的工作,這些套件並未安裝在叢集上。
  • 如何關閉叢集。

事前準備

本實驗室屬於進階難度,建議您先熟悉 Managed Apache Spark 和 Apache Spark,但這並非強制要求。如果您希望能快速上手,請務必參考下列實驗室:

準備就緒後,請向下捲動,進一步瞭解本實驗室會用到的服務。

設定和需求

瞭解以下事項後,再點選「Start Lab」按鈕

請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。

您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。

為了順利完成這個實驗室,請先確認:

  • 可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意事項:請使用無痕模式 (建議選項) 或私密瀏覽視窗執行此實驗室,這可以防止個人帳戶和學員帳戶之間的衝突,避免個人帳戶產生額外費用。
  • 是時候完成實驗室活動了!別忘了,活動一旦開始將無法暫停。
注意事項:務必使用實驗室專用的學員帳戶。如果使用其他 Google Cloud 帳戶,可能會產生額外費用。

如何開始實驗室及登入 Google Cloud 控制台

  1. 按一下「Start Lab」按鈕。如果實驗室會產生費用,請在開啟的對話方塊中選取付款方式。右側的「Lab setup and access」面板會顯示下列項目:

    • 「Open Google Cloud console」按鈕
    • 此實驗室所需的臨時憑證 (使用者名稱和密碼)
    • 完成此實驗室所需的其他資訊 (如有)

    請注意,實驗室計時器位於頁面頂端附近,會顯示剩餘時間。

  2. 按一下「Open Google Cloud console」。如果使用 Chrome 瀏覽器,也可以按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」

    接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。

    提示:您可以在不同的視窗並排開啟分頁。

    注意:頁面顯示「選擇帳戶」對話方塊時,請點選「使用其他帳戶」
  3. 如有必要,請將下方的 Username 貼到「登入」對話方塊。

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

    您也可以在「Lab setup and access」面板找到「Username」。

  4. 點選「下一步」

  5. 複製下方的 Password,並貼到「歡迎使用」對話方塊。

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

    您也可以在「Lab setup and access」面板找到「Password」。

  6. 點選「下一步」

    重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。 注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
  7. 繼續點按後續頁面:

    • 接受條款及細則。
    • 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
    • 請勿申請免費試用。

Google Cloud 控制台稍後會在這個分頁開啟。

注意:如要使用 Google Cloud 產品和服務,請按一下「導覽選單」,或在「搜尋」欄位輸入服務或產品名稱。「導覽選單」圖示和搜尋欄位

簡介

Managed Apache Spark 是一項代管 Spark 和 Hadoop 服務,可讓您運用開放原始碼資料工具,執行批次處理、查詢、串流和機器學習工作。透過 Managed Apache Spark 的自動化功能,您可以快速建立及輕鬆管理叢集,並在不需要時直接關閉來節省費用。省下管理作業的時間與成本,您就能專心處理工作與資料。

如果運算密集的工作符合下列特徵,建議使用 Managed Apache Spark 水平擴展資源:

  1. 工作屬於簡單平行處理類型,也就是說,您可以在不同機器上處理資料的不同子集。
  2. 您已有執行運算的 Apache Spark 程式碼,或熟悉 Apache Spark。
  3. 工作在資料子集中的分配情形相當平均

如果不同子集需要的運算量不同 (或您還不熟悉 Apache Spark),Apache Beam on 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 主機。

測試已完成的工作

點選「Check my progress」,確認工作已完成。

在 Compute Engine 建立開發機器。
  1. 現在請在控制台點選「SSH」按鈕,透過 SSH 連至執行個體。

工作 2:安裝軟體

接著設定軟體來執行工作。您將使用開放原始碼建構工具 sbt,為要提交至 Managed Apache Spark 叢集的工作建構 JAR。這個 JAR 檔案會包含程式和執行工作所需的套件。這項工作會偵測儲存在 Cloud Storage bucket 內一組圖片檔的臉孔,並將標有人臉的檔案寫入相同或另一個 Cloud Storage bucket。

  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

接著,您要建構特徵偵測工具檔案。本實驗室所用的程式碼,是 GitHub 上 Managed Apache Spark 存放區中現有解決方案的微調版本。您要下載程式碼,然後使用 cd 指令進入本實驗室的目錄,並建構特徵偵測工具的「fat JAR」,以便提交至 Managed 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. 發布版本。這個指令會建構特徵偵測工具的「fat JAR」,以便提交至 Managed Apache Spark:
sed -i 's/scalaVersion := "2.12.*/scalaVersion := "2.12.19"/' build.sbt sbt assembly 注意:此步驟處理時間較長,約需五分鐘以上。請耐心等候。

測試已完成的工作

點選「Check my progress」,確認工作已完成。

在開發機器中安裝軟體。

工作 3:建立 Cloud Storage bucket 並收集圖片

您已建立特徵偵測工具檔案,現在請建立 Cloud Storage bucket,並在其中新增一些範例圖片。

  1. 擷取專案 ID 做為 bucket 名稱:
GCP_PROJECT=$(gcloud config get-value core/project)
  1. 為 bucket 命名,並將殼層變數設為 bucket 名稱。系統會在指令中使用此殼層變數,以便參照您的 bucket:
MYBUCKET="${USER//google}-image-${RANDOM}" echo MYBUCKET=${MYBUCKET}
  1. 使用 Cloud SDK 隨附於 gcloudgsutil 程式,建立 bucket 來存放範例圖片:
gcloud storage buckets create gs://${MYBUCKET}

測試已完成的工作

點選「Check my progress」,確認工作已完成。

建立 Cloud Storage bucket。
  1. 將一些範例圖片下載到 bucket:
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 bucket:

一家三口

一位女性

課堂

測試已完成的工作

點選「Check my progress」,確認工作已完成。

將一些範例圖片下載到 bucket。
  1. 執行下列指令,查看 bucket 內容:
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:建立 Managed 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

這可能需要幾分鐘時間。預設的叢集設定包含兩個 worker 節點,應能滿足本實驗室的需求。e2-standard-2 皆指定為 worker 和主節點的機型,可減少叢集使用的核心總數。

您要在 initialization-actions 旗標部分傳遞指令碼,藉此在每部叢集機器上安裝 libgtk2.0-dev 程式庫。執行程式碼時需要用到這個程式庫。

注意:如果叢集建立失敗,請試著刪除叢集 (gcloud dataproc clusters delete ${MYCLUSTER}),然後重新執行先前的叢集建立指令。

測試已完成的工作

點選「Check my progress」,確認工作已完成。

建立 Managed Apache Spark 叢集。 注意:如要進一步瞭解如何使用指令列旗標自訂叢集設定,請參閱 Cloud SDK 的 gcloud dataproc clusters create 參考資料

工作 5:將工作提交至 Managed Apache Spark 叢集

在本實驗室,您執行的程式會做為臉部偵測工具,因此輸入的 haar 分類器必須描述臉孔。haar 分類器是 XML 檔案,用於描述程式將偵測的特徵。您將下載 haar 分類器檔案,並在將工作提交至 Managed Apache Spark 叢集時,將該檔案的 Cloud Storage 路徑加到第一個引數。

  1. 在 SSH 視窗中執行下列指令,將臉部偵測設定檔載入至 bucket:
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 bucket 中 imgs 目錄的圖片集,做為特徵偵測工具的輸入內容。您必須加入該目錄的路徑,做為工作提交指令的第二個引數。
  • 將工作提交至 Managed 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/

您可以將其他圖片新增至第二個引數指定的 Cloud Storage bucket。

  1. 為了監控工作,請前往 Cloud Platform 控制台,依序選取「導覽選單」>「查看所有產品」。接著在「Analytics」下方,依序點選「Managed Apache Spark」>「工作」

看到成功狀態後,即可繼續執行後續步驟。

工作輸出內容會顯示「已完成」狀態

測試已完成的工作

點選「Check my progress」,確認工作已完成。

將工作提交至 Managed Apache Spark 叢集。
  1. 工作完成後,依序前往「導覽選單」>「Cloud Storage」,找出您建立的 bucket (名稱會是您的使用者名稱,後面接著 student-image 和隨機數字),然後點選該 bucket。

  2. 點選 Out 目錄中的圖片。

  3. 點選「下載」圖示,圖片就會下載到電腦。

臉部偵測的準確率如何?Vision API 是更好的做法,因為手動編寫程式碼規則的效果不佳。接著您可以看看運作方式。

  1. (選用) 在 bucket 中前往 imgs 資料夾,然後點選上傳至 bucket 的其他圖片。這麼做會下載三張範例圖片。請將這些檔案儲存到電腦。

  2. 點選這個連結前往 Vision API 頁面,向下捲動至試用 API 部分,然後上傳從 bucket 下載的圖片。幾秒內,您就能看到圖片偵測結果。基礎機器學習模型不斷改良,因此結果可能不盡相同:

女性臉部偵測 課堂上臉部偵測 一家三口臉部偵測

  1. (選用) 如果想試著改良特徵偵測工具,可以編輯 FeatureDetector 程式碼,然後重新執行 sbt assemblygcloud dataprocjobs submit 指令。

工作 6:隨堂測驗

本實驗室介紹了幾個概念,下列選擇題可加深您的理解,盡力回答即可。

恭喜!

您已瞭解如何啟動 Managed Apache Spark 叢集並執行工作!

Google Cloud 教育訓練與認證

協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。

使用手冊上次更新日期:2026 年 7 月 6 日

實驗室上次測試日期:2026 年 7 月 6 日

Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

Before you begin

  1. Labs create a Google Cloud project and resources for a fixed time
  2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
  3. On the top left of your screen, click Start lab to begin

Use private browsing

  1. Copy the provided Username and Password for the lab
  2. Click Open console in private mode

Sign in to the Console

  1. Sign in using your lab credentials. Using other credentials might cause errors or incur charges.
  2. Accept the terms, and skip the recovery resource page
  3. Don't click End lab unless you've finished the lab or want to restart it, as it will clear your work and remove the project

This content is not currently available

We will notify you via email when it becomes available

Great!

We will contact you via email if it becomes available

One lab at a time

Confirm to end all existing labs and start this one

Use private browsing to run the lab

Using an Incognito or private browser window is the best way to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.