建立 Hadoop 叢集

您可以使用 Cloud Dataproc 來建立一或多個能連線至 Cloud BigTable 執行個體並執行 Hadoop 工作Compute Engine 執行個體。此頁面說明如何使用 Cloud Dataproc 來自動化以下工作:

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

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

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

事前準備

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

  • 建立 Cloud Bigtable 執行個體。請務必記下專案 ID 以及 Cloud Bigtable 執行個體 ID。
  • 啟用 Cloud Bigtable, Cloud Bigtable Admin, Cloud Dataproc, and Cloud Storage JSON API。

    啟用 API

  • 安裝 Cloud SDK 以及 gcloud 指令列工具。詳情請參閱 Cloud SDK 安裝說明
  • 透過以下指令來安裝 gsutil 工具:
    gcloud components install gsutil
  • 安裝 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, 內容包含使用 Cloud Bigtable 執行 Hadoop 工作的範例:
    git clone https://github.com/GoogleCloudPlatform/cloud-bigtable-examples.git

建立 Cloud Storage 值區

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

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

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

gsutil mb -p [PROJECT_ID] gs://[BUCKET_NAME]

建立 Cloud Dataproc 叢集

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

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

請參閱 gcloud dataproc clusters create 說明文件,瞭解您可以進行哪些額外設定。若您收到包含 Insufficient 'CPUS' quota 的錯誤訊息,請嘗試將 --num-workers 標記設置為較低的值。

測試 Cloud Dataproc 叢集

建立 Cloud Dataproc 叢集之後,您可以執行範例 Hadoop 工作來測試叢集,這能計算文字檔案中特定字詞出現的次數。範例工作會使用 Cloud 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 工作之後,您可以使用 HBase shell 來驗證該工作確實執行成功:

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

    在 Cloud Shell 中開啟

  2. 複製一份包含 HBase shell 檔案的存放區,並切換至 HBase shell 的目錄:

    git clone https://github.com/GoogleCloudPlatform/cloud-bigtable-examples.git
    cd cloud-bigtable-examples/quickstart
  3. 啟用 HBase shell:

    ./quickstart.sh
  4. 掃描輸出資料表以查看 Hadoop 工作的結果,請先將 [TABLE_NAME] 替換為您的資料表名稱:
    scan '[TABLE_NAME]'

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

刪除 Cloud Dataproc 叢集

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

gcloud dataproc clusters delete [DATAPROC_CLUSTER_NAME]

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Bigtable 說明文件