建立 Hadoop 叢集

您可以使用 Managed Service for Apache Spark 建立一或多個 Compute Engine 執行個體,這些執行個體可以連線至 Bigtable 執行個體並執行 Hadoop 工作。此頁面說明如何使用 Managed Service for Apache Spark 自動執行下列工作:

  • 安裝 Hadoop 和 Java 的 HBase 用戶端
  • 設定 Hadoop 和 Bigtable
  • 為 Bigtable 設定正確的授權範圍

建立 Managed Service for Apache Spark 叢集後,即可使用該叢集執行 Hadoop 工作,從 Bigtable 讀取及寫入資料。

本文件假設您已熟悉如何使用 Hadoop。如要進一步瞭解 Managed Service for Apache Spark,請參閱 Managed Service for Apache Spark 說明文件。

事前準備

在您開始之前,您需要先完成下方的工作:

  • 建立 Bigtable 執行個體。請務必記下專案 ID 和 Bigtable 執行個體 ID。
  • 如尚未啟用,請啟用 Cloud Bigtable API、Cloud Bigtable Admin API、Managed Service for Apache Spark 和 Cloud Storage JSON API。

    啟用 API 時所需的角色

    如要啟用 API,您必須具備 serviceusage.services.enable 權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。

    啟用 API

  • 確認您的使用者帳戶具備包含 storage.objects.get 權限的角色。

    在 Cloud de Confiance 控制台中開啟「IAM」頁面。

    開啟 IAM 頁面

  • 安裝 Google Cloud CLI。詳情請參閱 gcloud CLI 設定操作說明。
  • 安裝 Apache Maven,以執行 Hadoop 範本工作。

    在 Debian GNU/Linux 或 Ubuntu 系統上執行以下指令:

    sudo apt-get install maven

    在 RedHat Enterprise Linux 或 CentOS 系統上執行以下指令:

    sudo yum install maven

    在 macOS 系統上安裝 Homebrew,並執行以下指令:

    brew install maven
  • 複製 GitHub 存放區 GoogleCloudPlatform/cloud-bigtable-examples,其中包含使用 Bigtable 的 Hadoop 工作範例:
    git clone https://github.com/GoogleCloudPlatform/cloud-bigtable-examples.git

建立 Cloud Storage bucket

Managed Service for Apache Spark 會使用 Cloud Storage bucket 儲存暫存檔案。為避免檔案命名衝突,請為 Managed Service for Apache Spark 建立新的 bucket。

Cloud Storage bucket 名稱不可重複,每個 bucket 的名稱都必須是唯一的。 選擇可能可用的 bucket 名稱,例如包含專案名稱的名稱。 Cloud de Confiance by S3NS

選擇名稱之後,請使用下方的指令來建立新的值區。請將括號中的值換成適當的值:

gcloud storage buckets create gs://[BUCKET_NAME] --project=[PROJECT_ID]

建立 Managed Service for Apache Spark 叢集

執行下列指令,建立具有四個工作節點的 Managed Service for Apache Spark 叢集,並將括號中的值換成適當的值:

gcloud dataproc clusters create [DATAPROC_CLUSTER_NAME] --bucket [BUCKET_NAME] \
    --region [region] --num-workers 4 --master-machine-type n1-standard-4 \
    --worker-machine-type n1-standard-4

如要瞭解其他可設定的設定,請參閱 gcloud dataproc clusters create 說明文件。如果收到包含 Insufficient 'CPUS' quota 文字的錯誤訊息,請嘗試將 --num-workers 標記設為較低的值。

測試 Managed Service for Apache Spark 叢集

設定 Managed Service for Apache Spark 叢集後,您可以執行範例 Hadoop 工作,測試叢集是否正常運作。這項工作會計算文字檔案中每個字詞的出現次數。範例作業會使用 Bigtable 儲存作業結果。您在建立自己的 Hadoop 工作時,可以使用此範例工作做為參考。

執行範例 Hadoop 工作

  1. 在複製 GitHub 存放區的目錄中,變更為 java/dataproc-wordcount 目錄。
  2. 執行下列指令以建立專案。請將括號中的值換成適當的值:

    mvn clean package -Dbigtable.projectID=[PROJECT_ID] \
        -Dbigtable.instanceID=[BIGTABLE_INSTANCE_ID]
    
  3. 執行下列指令以開始 Hadoop 工作。請將括號中的值換成適當的值:

    ./cluster.sh start [DATAPROC_CLUSTER_NAME]
    

工作完成後,畫面會顯示輸出資料表的名稱,也就是字詞 WordCount,後面加上連字號和專屬數字:

Output table is: WordCount-1234567890

驗證 Hadoop 工作的結果

(選用) 執行 Hadoop 工作後,您可以使用 cbt CLI 確認工作是否順利執行:

  1. 在 Cloud shell 中開啟終端機視窗。

    在 Cloud Shell 開啟

  2. 安裝 cbt CLI :
        gcloud components update
        gcloud components install cbt
  3. 掃描輸出資料表以查看 Hadoop 工作的結果,請先將 [TABLE_NAME] 替換為您的資料表名稱:
        cbt -instance [BIGTABLE_INSTANCE_ID] read [TABLE_NAME]
      

現在您已經驗證了叢集設定正確,您可以使用它來執行您自己的 Hadoop 工作。

刪除 Managed Service for Apache Spark 叢集

使用完 Managed Service for Apache Spark 叢集後,請執行下列指令來關閉及刪除叢集。請將 [DATAPROC_CLUSTER_NAME] 換成您的 Managed Service for Apache Spark 叢集名稱:

gcloud dataproc clusters delete [DATAPROC_CLUSTER_NAME]

後續步驟