您可以使用 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。
- 安裝 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 工作
- 在您所複製的 GitHub 存放區目錄中,將目錄切換為
java/dataproc-wordcount
。 執行下列指令以建立專案。請將括號中的值換成適當的值:
mvn clean package -Dbigtable.projectID=[PROJECT_ID] \ -Dbigtable.instanceID=[BIGTABLE_INSTANCE_ID]
執行下列指令以開始 Hadoop 工作。請將括號中的值換成適當的值:
./cluster.sh start [DATAPROC_CLUSTER_NAME]
工作完成之後,會顯示輸出資料表的名稱,即為 WordCount
後方的連字號及專屬編號:
Output table is: WordCount-1234567890
驗證 Hadoop 工作的結果
在您執行 Hadoop 工作之後,您可以使用 HBase shell 來驗證該工作確實執行成功:
-
在 Cloud Shell 中開啟終端機視窗。
-
複製一份包含 HBase shell 檔案的存放區,並切換至 HBase shell 的目錄:
git clone https://github.com/GoogleCloudPlatform/cloud-bigtable-examples.git cd cloud-bigtable-examples/quickstart
啟用 HBase shell:
./quickstart.sh
- 掃描輸出資料表以查看 Hadoop 工作的結果,請先將
[TABLE_NAME]
替換為您的資料表名稱:scan '[TABLE_NAME]'
現在您已經驗證了叢集設定正確,您可以使用它來執行您自己的 Hadoop 工作。
刪除 Cloud Dataproc 叢集
當您使用完 Cloud Dataproc 叢集後,請執行下方指令來關閉或刪除叢集。請將 [DATAPROC_CLUSTER_NAME]
換成您的 Cloud Dataproc 叢集名稱:
gcloud dataproc clusters delete [DATAPROC_CLUSTER_NAME]
後續步驟
- 進一步瞭解 Cloud Dataproc。
- 開始使用 Java 適用的 HBase 用戶端。