Physical Address

304 North Cardinal St.
Dorchester Center, MA 02124

GCP 筆記: Dataflow – Python & Dataproc

Dataflow

開始 Lab 以前,需要先確認自己的專案 {project-number}-compute@developer.gserviceaccount.com 是否有編輯者 (Editor) 的權限。

確認後,建立 Cloud Storage 貯體。

安裝 pip 與 Cloud Dataflow SDK

開啟 Cloud Shell,檢查 Python 版本。

python3 --version
# 檢查 pip 版本
pip3 --version
# 更新 pip 至最新版本
sudo pip3 install -U pip
# 安裝虛擬環境套件
sudo pip3 install --upgrade virtualenv
# 建立 pip 虛擬環境 Virtual Environment
virtualenv -p python3.7 env
# 啟用虛擬環境
source env/bin/activate

進入虛擬環境後,Shell 前面會多一個 (env) 標示。接著安裝 Apache Beam for Python。

pip install apache-beam[gcp]

接著執行 wordcount.py 程式。將 OUTPUT_FILE 變更為想要輸出的檔案名稱。

python -m apache_beam.examples.wordcount --output OUTPUT_FILE

執行完畢後便可以看到路徑中產生 OUTPUT_FILE 的檔案。用 cat 檢查檔案內容

# 確認完整檔案名稱
ls
cat 檔案名稱

在遠端執行

首先,先定義 Cloud Storage 貯體。

BUCKET=gs://<bucket name provided earlier>

接著執行以下指令,在遠端執行 wordcount.py

python -m apache_beam.examples.wordcount --project $DEVSHELL_PROJECT_ID \
  --runner DataflowRunner \
  --staging_location $BUCKET/staging \
  --temp_location $BUCKET/temp \
  --output $BUCKET/results/output \
  --region us-central1

點選導覽選單 > [Dataflow] > [Jobs],檢查執行狀況。等到執行完成時,會回傳 Succeeded

接著到 Cloud Storage 貯體中的 results 路徑檢視執行結果。

Dataproc – Command Line

  1. 建立名為 example-cluster 的 Dataproc 叢集。
  2. 送出任務,執行 pi 的計算。
gcloud config set dataproc/region us-central1
gcloud dataproc clusters create example-cluster --worker-boot-disk-size 500

gcloud dataproc jobs submit spark --cluster example-cluster \
  --class org.apache.spark.examples.SparkPi \
  --jars file:///usr/lib/spark/examples/jars/spark-examples.jar -- 1000

其他更新叢集的指令

利用 --num-workers 可以調整背景工作數量。

gcloud dataproc clusters update example-cluster --num-workers 4

Eric Chuang
Eric Chuang

正職是廣告行銷人員,因為 Google Tag Manager 的關係開始踏入網站製作的領域,進一步把 WordPress 當成 PHP + HTML + CSS + JavaScript 的學習教材。此外,因為工作的關係,曾經用 Automattic 的 Underscores (_s) 替客戶與公司官網進行全客製化佈景主題開發。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料