建立 Hadoop 叢集

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

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

建立 Dataproc 叢集之後,即可使用叢集執行 Hadoop 工作,以便從 Bigtable 讀取和寫入資料。

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

事前準備

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

  • 建立 Bigtable 執行個體。請務必記下專案 ID 和 Bigtable 執行個體 ID。
  • Enable the Cloud Bigtable API, Cloud Bigtable Admin API, Dataproc, and Cloud Storage JSON APIs.

    Enable the APIs

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

    在 Google Cloud 控制台中開啟「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 值區

Dataproc 使用 Cloud Storage 值區來儲存暫存檔案。為了防止在命名檔案時因檔名重複而發生衝突,請為 Dataproc 建立一個新的值區。

Cloud Storage 值區名稱不可重複,每個值區的名稱都必須是唯一的。請選擇可能還沒被使用過的值區名稱,例如將 Google Cloud 專案名稱加入值區名稱。

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

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

建立 Dataproc 叢集

執行下列指令,建立具有四個工作站節點的 Dataproc 叢集。請將括號中的值換成適當的值:

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 標記設為較低的值。

測試 Dataproc 叢集

建立 Dataproc 叢集之後,您可以執行範例 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 工作。

刪除 Dataproc 叢集

使用完 Dataproc 叢集後,請執行下列指令來關閉並刪除叢集。請將 [DATAPROC_CLUSTER_NAME] 換成您的 Dataproc 叢集名稱:

gcloud dataproc clusters delete [DATAPROC_CLUSTER_NAME]

後續步驟