本教學課程說明如何使用 Dask、NVIDIA RAPIDS 和 GPU 執行單細胞基因體分析,您可以在 Managed Service for Apache Spark 上設定這些項目。您可以設定 Managed Service for Apache Spark,透過獨立排程器或 YARN 執行 Dask,以管理資源。
本教學課程會設定 Managed Service for Apache Spark,搭配託管的 JupyterLab 執行個體,執行以單細胞基因體分析為主題的筆記本。在 Managed Service for Apache Spark 上使用 Jupyter 筆記本,可結合 Jupyter 的互動功能,以及 Managed Service for Apache Spark 提供的負載調度功能。透過 Managed Service for Apache Spark,您可以將工作負載從一台機器擴展到多台機器,並視需要設定任意數量的 GPU。
本教學課程適用於資料科學家和研究人員。本文假設您有 Python 使用經驗,並具備下列基礎知識:
目標
- 建立已設定 GPU、JupyterLab 和開放原始碼元件的 Managed Service for Apache Spark 執行個體。
- 在 Managed Service for Apache Spark 上執行筆記本。
費用
在本文件中,您會使用下列 Google Cloud的計費元件:
如要根據預測用量估算費用,請使用 Pricing Calculator。
完成本文所述工作後,您可以刪除建立的資源,避免繼續計費,詳情請參閱「清除所用資源」。
事前準備
-
在 Google Cloud 控制台的專案選擇器頁面中,選取或建立 Google Cloud 專案。
選取或建立專案所需的角色
- 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您在專案中獲派角色,即可選取該專案。
-
建立專案:如要建立專案,您需要具備專案建立者角色 (
roles/resourcemanager.projectCreator),其中包含resourcemanager.projects.create權限。瞭解如何授予角色。
-
啟用 Dataproc API。
啟用 API 時所需的角色
如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (
roles/serviceusage.serviceUsageAdmin),其中包含serviceusage.services.enable權限。瞭解如何授予角色。
準備環境
為資源選取位置。
REGION=REGION
建立 Cloud Storage bucket。
gcloud storage buckets create gs://BUCKET --location=REGION
將下列初始化動作複製到 bucket。
SCRIPT_BUCKET=gs://goog-dataproc-initialization-actions-REGION gcloud storage cp ${SCRIPT_BUCKET}/gpu/install_gpu_driver.sh BUCKET/gpu/install_gpu_driver.sh gcloud storage cp ${SCRIPT_BUCKET}/dask/dask.sh BUCKET/dask/dask.sh gcloud storage cp ${SCRIPT_BUCKET}/rapids/rapids.sh BUCKET/rapids/rapids.sh gcloud storage cp ${SCRIPT_BUCKET}/python/pip-install.sh BUCKET/python/pip-install.sh
建立包含 JupyterLab 和開放原始碼元件的 Managed Service for Apache Spark 叢集
- 建立 Managed Service for Apache Spark 叢集。
gcloud dataproc clusters create CLUSTER_NAME \ --region REGION \ --image-version 2.0-ubuntu18 \ --master-machine-type n1-standard-32 \ --master-accelerator type=nvidia-tesla-t4,count=4 \ --initialization-actions BUCKET/gpu/install_gpu_driver.sh,BUCKET/dask/dask.sh,BUCKET/rapids/rapids.sh,BUCKET/python/pip-install.sh \ --initialization-action-timeout=60m \ --metadata gpu-driver-provider=NVIDIA,dask-runtime=yarn,rapids-runtime=DASK,rapids-version=21.06,PIP_PACKAGES="scanpy==1.8.1,wget" \ --optional-components JUPYTER \ --enable-component-gateway \ --single-node
叢集具有下列屬性:
--region:叢集所在的區域。--image-version:2.0-ubuntu18,叢集映像檔版本--master-machine-type:n1-standard-32,主要機型。--master-accelerator:主要節點上的 GPU 類型和數量,四個nvidia-tesla-t4GPU。--initialization-actions:安裝指令碼的 Cloud Storage 路徑,用於安裝 GPU 驅動程式、Dask、RAPIDS 和其他依附元件。--initialization-action-timeout:初始化動作的逾時時間。--metadata:傳遞至初始化動作,以使用 NVIDIA GPU 驅動程式、Dask 的獨立排程器和 RAPIDS21.06版設定叢集。--optional-components:使用 Jupyter 選用元件設定叢集。--enable-component-gateway:允許存取叢集中的 web UI。--single-node:將叢集設為單一節點 (沒有 worker)。
存取 Jupyter Notebook
- 在 Managed Service for Apache Spark Google Cloud 控制台中開啟「Clusters」(叢集) 頁面。
開啟叢集頁面 - 按一下叢集,然後點選「Web Interfaces」(網頁介面) 分頁標籤。
- 點選「JupyterLab」(JupyterLab)。
- 在 JupyterLab 中開啟新的終端機。
複製
clara-parabricks/rapids-single-cell-examples存放區,然後查看managed-spark/multi-gpu分支版本。git clone https://github.com/clara-parabricks/rapids-single-cell-examples.git git checkout managed-spark/multi-gpu
在 JupyterLab 中,前往 rapids-single-cell-examples/notebooks 存放區,然後開啟 1M_brain_gpu_analysis_uvm.ipynb Jupyter Notebook。
如要清除筆記本中的所有輸出內容,請依序選取「Edit」(編輯) >「Clear All Outputs」(清除所有輸出內容)
請閱讀筆記本儲存格中的指示。筆記本會在 Managed Service for Apache Spark 上使用 Dask 和 RAPIDS,引導您完成 100 萬個細胞的單細胞 RNA 序列工作流程,包括處理及視覺化資料。詳情請參閱「使用 RAPIDS 加速單細胞基因體學分析」。
清除所用資源
為避免因為本教學課程所用資源,導致系統向 Google Cloud 收取費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。
刪除專案
- 前往 Google Cloud 控制台的「Manage resources」(管理資源) 頁面。
- 在專案清單中選取要刪除的專案,然後點選「Delete」(刪除)。
- 在對話方塊中輸入專案 ID,然後按一下 [Shut down] (關閉) 以刪除專案。
刪除個別資源
- 刪除 Managed Service for Apache Spark 叢集。
gcloud dataproc clusters delete cluster-name \ --region=region
-
刪除 bucket:
gcloud storage buckets delete BUCKET_NAME
後續步驟
- 進一步瞭解 Managed Service for Apache Spark。
- 查看參考架構、圖表、教學課程和最佳做法。歡迎瀏覽我們的 Cloud Architecture Center。