이 튜토리얼에서는 Managed Service for Apache Spark에서 구성할 수 있는 Dask, NVIDIA RAPIDS, GPU를 사용하여 단일 셀 게놈 분석을 실행하는 방법을 보여줍니다. 독립형 스케줄러 또는 리소스 관리용 YARN을 사용하여 Dask를 실행하도록 Managed Service for Apache Spark를 구성할 수 있습니다.
이 튜토리얼에서는 호스팅된 JupyterLab 인스턴스로 Managed Service for Apache Spark를 구성하여 단세포 게놈 분석 기능을 갖춘 노트북을 실행합니다. Managed Service for Apache Spark에서 Jupyter 노트북을 사용하면 Managed Service for Apache Spark이 사용 설정하는 워크로드 확장과 Jupyter의 대화형 기능을 결합할 수 있습니다. Managed Service for Apache Spark를 사용하면 하나의 머신에서 여러 머신으로 워크로드를 수평 확장할 수 있으며, 필요한 수의 GPU로 구성 가능합니다.
이 튜토리얼은 데이터 과학자와 연구원을 대상으로 합니다. 이 튜토리얼은 Python을 사용해 본 경험이 있고 다음과 같은 기본 지식이 있다고 가정합니다.
목표
- GPU, JupyterLab, 오픈소스 구성요소로 구성된 Managed Service for Apache Spark 인스턴스를 만듭니다.
- Managed Service for Apache Spark에서 노트북을 실행합니다.
비용
이 문서에서는 비용이 청구될 수 있는 Google Cloud구성요소를 사용합니다.
프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용하세요.
이 문서에 설명된 태스크를 완료했으면 만든 리소스를 삭제하여 청구가 계속되는 것을 방지할 수 있습니다. 자세한 내용은 삭제를 참조하세요.
시작하기 전에
-
Google Cloud 콘솔의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.
프로젝트를 선택하거나 만드는 데 필요한 역할
- 프로젝트 선택: 프로젝트를 선택하는 데는 특정 IAM 역할이 필요하지 않습니다. 역할이 부여된 프로젝트를 선택하면 됩니다.
-
프로젝트 만들기: 프로젝트를 만들려면
resourcemanager.projects.create권한이 포함된 프로젝트 생성자 역할(roles/resourcemanager.projectCreator)이 필요합니다. 역할 부여 방법 알아보기
-
Dataproc API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면
serviceusage.services.enable권한이 포함된 서비스 사용량 관리자 IAM 역할(roles/serviceusage.serviceUsageAdmin)이 필요합니다. 역할 부여 방법 알아보기
개발 환경 준비
리소스 위치를 선택합니다.
REGION=REGION
Cloud Storage 버킷을 만듭니다.
gcloud storage buckets create gs://BUCKET --location=REGION
다음 초기화 작업을 버킷에 복사합니다.
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 유형 및 개수, 4개의nvidia-tesla-t4GPU--initialization-actions: GPU 드라이버, Dask, RAPIDS, 추가 종속 항목을 설치하는 설치 스크립트의 Cloud Storage 경로입니다.--initialization-action-timeout: 초기화 작업의 제한 시간입니다.--metadata: NVIDIA GPU 드라이버, Dask용 독립형 스케줄러, RAPIDS 버전21.06으로 클러스터를 구성하기 위해 초기화 작업에 전달됩니다.--optional-components: Jupyter 선택적 구성요소로 클러스터를 구성합니다.--enable-component-gateway: 클러스터의 웹 UI에 대한 액세스를 허용합니다.--single-node: 클러스터를 단일 노드로 구성합니다(작업자 없음).
Jupyter 노트북에 액세스
- Managed Service for Apache Spark Google Cloud 콘솔에서 클러스터 페이지를 엽니다.
클러스터 페이지 열기 - 클러스터를 클릭하고 웹 인터페이스 탭을 클릭합니다.
- 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을 엽니다.
노트북의 모든 출력을 지우려면 편집 > 모든 출력 지우기를 선택합니다.
노트북의 셀에 있는 안내를 읽습니다. 이 노트북은 Managed Service for Apache Spark에서 Dask 및 RAPIDS를 사용하여 데이터 처리 및 시각화를 포함한 1백만 개의 셀에 대한 단일 셀 RNA-seq 워크플로를 안내합니다. 자세한 내용은 RAPIDS를 사용하여 단일 셀 게놈 분석 가속화를 참조하세요.
삭제
이 튜토리얼에서 사용된 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 리소스가 포함된 프로젝트를 삭제하거나 프로젝트를 유지하고 개별 리소스를 삭제하세요.
프로젝트 삭제
- Google Cloud 콘솔에서 리소스 관리 페이지로 이동합니다.
- 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.
- 대화상자에서 프로젝트 ID를 입력한 후 종료를 클릭하여 프로젝트를 삭제합니다.
개별 리소스 삭제
- Managed Service for Apache Spark 클러스터를 삭제합니다.
gcloud dataproc clusters delete cluster-name \ --region=region
-
버킷을 삭제합니다.
gcloud storage buckets delete BUCKET_NAME
다음 단계
- Managed Service for Apache Spark에 대해 자세히 알아보세요.
- 참고 아키텍처, 다이어그램, 가이드, 권장사항 살펴보기, Cloud 아키텍처 센터 살펴보기