이 페이지에서는 Google Cloud CLI gcloud 명령줄 도구를 사용하여 Dataproc 클러스터를 만들고, 클러스터에서 Apache Spark 작업을 실행한 다음 클러스터의 작업자 수를 수정하는 방법을 보여줍니다.
빠른 시작: API 탐색기 사용, Google Cloud 콘솔을 사용하여 Dataproc 클러스터 만들기의 Google Cloud 콘솔, 클라이언트 라이브러리를 사용하여 Dataproc 클러스터 만들기의 클라이언트 라이브러리를 통해 동일하거나 유사한 작업을 수행하는 방법을 확인할 수 있습니다.
시작하기 전에
- Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
Google Cloud CLI를 설치합니다.
-
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.
gcloud init -
Google Cloud 프로젝트를 만들거나 선택합니다.
프로젝트를 선택하거나 만드는 데 필요한 역할
- 프로젝트 선택: 프로젝트를 선택하는 데는 특정 IAM 역할이 필요하지 않습니다. 역할이 부여된 프로젝트를 선택하면 됩니다.
-
프로젝트 만들기: 프로젝트를 만들려면
resourcemanager.projects.create권한이 포함된 프로젝트 생성자 역할(roles/resourcemanager.projectCreator)이 필요합니다. 역할 부여 방법 알아보기
-
Google Cloud 프로젝트를 만듭니다.
gcloud projects create PROJECT_ID
PROJECT_ID를 만들려는 Google Cloud 프로젝트의 이름으로 바꿉니다. -
생성한 Google Cloud 프로젝트를 선택합니다.
gcloud config set project PROJECT_ID
PROJECT_ID을 Google Cloud 프로젝트 이름으로 바꿉니다.
Dataproc API 사용 설정:
API 사용 설정에 필요한 역할
API를 사용 설정하려면
serviceusage.services.enable권한이 포함된 서비스 사용량 관리자 IAM 역할 (roles/serviceusage.serviceUsageAdmin)이 필요합니다. 역할 부여 방법 알아보기gcloud services enable dataproc.googleapis.com
-
Google Cloud CLI를 설치합니다.
-
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.
gcloud init -
Google Cloud 프로젝트를 만들거나 선택합니다.
프로젝트를 선택하거나 만드는 데 필요한 역할
- 프로젝트 선택: 프로젝트를 선택하는 데는 특정 IAM 역할이 필요하지 않습니다. 역할이 부여된 프로젝트를 선택하면 됩니다.
-
프로젝트 만들기: 프로젝트를 만들려면
resourcemanager.projects.create권한이 포함된 프로젝트 생성자 역할(roles/resourcemanager.projectCreator)이 필요합니다. 역할 부여 방법 알아보기
-
Google Cloud 프로젝트를 만듭니다.
gcloud projects create PROJECT_ID
PROJECT_ID를 만들려는 Google Cloud 프로젝트의 이름으로 바꿉니다. -
생성한 Google Cloud 프로젝트를 선택합니다.
gcloud config set project PROJECT_ID
PROJECT_ID을 Google Cloud 프로젝트 이름으로 바꿉니다.
Dataproc API 사용 설정:
API 사용 설정에 필요한 역할
API를 사용 설정하려면
serviceusage.services.enable권한이 포함된 서비스 사용량 관리자 IAM 역할 (roles/serviceusage.serviceUsageAdmin)이 필요합니다. 역할 부여 방법 알아보기gcloud services enable dataproc.googleapis.com
필요한 역할
이 페이지의 예시를 실행하려면 특정 IAM 역할이 필요합니다. 조직 정책에 따라 이러한 역할이 이미 부여되었을 수 있습니다. 역할 부여를 확인하려면 역할을 부여해야 하나요?를 참고하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참고하세요.
사용자 역할
Dataproc 클러스터를 만드는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
-
프로젝트에 대한 Dataproc 편집자 (
roles/dataproc.editor) -
Compute Engine 기본 서비스 계정의 서비스 계정 사용자 (
roles/iam.serviceAccountUser)
서비스 계정 역할
Compute Engine 기본 서비스 계정에 Dataproc 클러스터를 만드는 데 필요한 권한이 있는지 확인하려면 관리자에게 프로젝트에 대한 Dataproc 작업자 (roles/dataproc.worker) IAM 역할을 Compute Engine 기본 서비스 계정에 부여해 달라고 요청하세요.
클러스터 만들기
example-cluster라는 클러스터를 만들려면 다음 gcloud Dataproc clusters create 명령어를 실행합니다.
gcloud dataproc clusters create example-cluster --region=REGION
다음을 바꿉니다.
REGION: 클러스터가 위치할 리전을 지정합니다.
작업 제출
대략적인 pi 값을 계산하는 Spark 작업 샘플을 제출하려면 다음 gcloud Dataproc jobs submit spark 명령어를 실행합니다.
gcloud dataproc jobs submit spark --cluster example-cluster \ --region=REGION \ --class org.apache.spark.examples.SparkPi \ --jars file:///usr/lib/spark/examples/jars/spark-examples.jar -- 1000
참고:
다음을 바꿉니다.
REGION: 클러스터 리전을 지정합니다.
- 작업은
example-cluster에서 실행됩니다. class에는pi의 근삿값을 계산하는 SparkPi의 기본 메서드가 포함되어 있습니다. 주석으로 남길 수 있습니다- JAR 파일에는 작업 코드가 포함되어 있습니다.
1000은 작업 매개변수입니다.pi값을 계산하기 위해 작업이 실행하는 태스크 (반복) 수를 지정합니다.
작업의 실행과 최종 출력은 터미널 창에 표시됩니다.
Waiting for job output... ... Pi is roughly 3.14118528 ... Job finished successfully.
클러스터 업데이트
클러스터의 작업자 수를 5로 변경하려면 다음 명령을 실행합니다.
gcloud dataproc clusters update example-cluster \ --region=REGION \ --num-workers 5
명령어 출력에 클러스터 세부정보가 표시됩니다.
workerConfig: ... instanceNames: - example-cluster-w-0 - example-cluster-w-1 - example-cluster-w-2 - example-cluster-w-3 - example-cluster-w-4 numInstances: 5 statusHistory: ... - detail: Add 3 workers.
작업자 노드 수를 기존 값인 2로 줄이려면 다음 명령어를 실행합니다.
gcloud dataproc clusters update example-cluster \ --region=REGION \ --num-workers 2
삭제
이 페이지에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 단계를 수행합니다.
example-cluster를 삭제하려면clusters delete명령어를 실행합니다.gcloud dataproc clusters delete example-cluster \ --region=REGION
다음 단계
- Spark Scala 작업 작성 및 실행 방법 알아보기