베하~! 안녕하세요 금쪽상담소의 오은영석사와 금쪽이입니다~
벌써 올해도 말복과 입추가 지나고 가을이 성큼성큼 다가오고있습니다.
하루빨리 날씨가 시원해지기를 기대하면서 이번주도 새로운 정보를 소개해드리겠습니다!
지난 시간에 소개해드렸던 Dataproc에 대해서 이번 주는 실제로 생성을 어떻게 하는지 알려드리겠습니다!!
우선 사전 준비로는 로컬 환경에 Google Cloud SDK가 설치되어있어야해요!
Gcloud 설치는 아래의 링크를 참조해주세요!
https://cloud.google.com/sdk/docs/install?hl=ko
이번 시간에는 Dataproc의 Type 중 GKE 기반의 Dataproc 설치를 해보겠습니다!
GKE 기반 Dataproc 클러스터를 다시 만들고 업데이트
우선 원할한 작업을 위해 환경 변수를 먼저 지정해줍니다.
DP_CLUSTER=Dataproc on GKE cluster-name \
REGION=region \
GKE_CLUSTER=GKE cluster-name \
BUCKET=Cloud Storage bucket-name \
DP_POOLNAME=node pool-name
PHS_CLUSTER=Dataproc PHS server name
- DP_CLUSTER: Dataproc 가상 클러스터 이름을 설정합니다. 이름은 소문자로 시작하고 이어서 최대 54자의 소문자, 숫자 또는 하이픈이 와야 합니다. 하이픈으로 끝날 수 없습니다.
- REGION: region은 GKE 클러스터가 위치한 리전과 같아야 합니다.
- GKE_CLUSTER: 기존 GKE 클러스터의 이름입니다.
- BUCKET: (선택사항) Dataproc이 아티팩트를 스테이징하는 데 사용할 Cloud Storage 버킷의 이름을 지정할 수 있습니다. 버킷을 지정하지 않으면 GKE 기반 Dataproc에서 스테이징 버킷을 만듭니다.
- DP_POOLNAME: GKE 클러스터에서 만들 노드 풀의 이름입니다.
- PHS_CLUSTER: (선택사항) 활성 및 삭제된 GKE 기반 Dataproc 클러스터에 대한 Spark 작업 기록을 확인하는 데 사용할 Dataproc PHS 서버입니다. PHS 클러스터가 GKE 기반 Dataproc 가상 클러스터와 동일한 리전에 있어야 합니다.
이후 다음 명령어를 실행 해줍니다.
gcloud dataproc clusters gke create ${DP_CLUSTER} \
--region=${REGION} \
--gke-cluster=${GKE_CLUSTER} \
--spark-engine-version=latest \
--staging-bucket=${BUCKET} \
--pools="name=${DP_POOLNAME},roles=default" \
--setup-workload-identity \
--history-server-cluster=${PHS_CLUSTER}
- --spark-engine-version: Dataproc 클러스터에서 사용되는 Spark 이미지 버전입니다. 3, 3.1 또는 latest와 같은 식별자를 사용하거나 3.1-dataproc-5와 같은 전체 하위 부 버전을 지정할 수 있습니다.
- --staging-bucket: GKE 기반 Dataproc에서 스테이징 버킷을 만들도록 하려면 이 플래그를 삭제합니다.
- --pools: 이 플래그는 Dataproc이 워크로드를 수행하기 위해 만들거나 사용할 신규 또는 기존 노드 풀을 지정하는 데 사용됩니다. GKE 기반 Dataproc 노드 풀 설정을 쉼표로 구분하여 나열합니다. 예:
노드 풀 name과 role을 지정해야 합니다. 다른 노드 풀 설정은 선택사항입니다. 여러 --pools 플래그를 사용하여 여러 노드 풀을 지정할 수 있습니다. 노드 풀 최소 하나 이상에 default 역할이 있어야 합니다. 모든 노드 풀에 동일한 위치가 있어야 합니다.--pools=name=dp-default,roles=default,machineType=e2-standard-4,min=0,max=10
- --setup-workload-identity: 이 플래그는 워크로드 아이덴티티 바인딩을 사용 설정합니다. 이러한 바인딩을 통해 Kubernetes 서비스 계정(KSA)은 가상 클러스터의 기본 Dataproc VM 서비스 계정(데이터 영역 ID) 역할을 할 수 있습니다.
Spark 작업 제출
GKE 기반 Dataproc 가상 클러스터가 실행된 후 Google Cloud console, gcloud CLI, 또는 Dataproc jobs.submit API(직접 HTTP 요청 또는 Cloud 클라이언트 라이브러리사용)를 사용하여 Spark 작업을 제출합니다.
gcloud CLI Spark 작업 예시:
gcloud dataproc jobs submit spark \
--region=${REGION} \
--cluster=${DP_CLUSTER} \
--class=org.apache.spark.examples.SparkPi \
--jars=local:///usr/lib/spark/examples/jars/spark-examples.jar \
-- 1000
GKE 기반 Dataproc을 사용하면 GKE 클러스터에서 Dataproc jobs API를 사용하여 빅데이터 애플리케이션을 실행할 수 있습니다. Google Cloud Console, Google Cloud CLI 또는 Dataproc API(HTTP 요청 또는 Cloud 클라이언트 라이브러리)를 사용하여 GKE 기반 Dataproc 가상 클러스터를 만든 후 Spark, PySpark, SparkR, Spark-SQL 작업을 Dataproc 서비스에 제출합니다.
GKE 기반 Dataproc은 GKE 클러스터에 Dataproc 가상 클러스터를 배포합니다. Compute Engine 기반 Dataproc 클러스터와 달리 GKE 기반 Dataproc 가상 클러스터에는 별도의 마스터 및 작업자 VM이 포함되지 않습니다. 대신 GKE 기반 Dataproc 가상 클러스터를 만들면 GKE 기반 Dataproc이 GKE 클러스터 내에 노드 풀을 만듭니다. GKE 기반 Dataproc 작업은 이 노드 풀에서 포드로 실행됩니다. 노드 풀 및 노드 풀의 포드 예약은 GKE에서 관리됩니다.
이렇게 구성을 하게되면 Dataproc을 GKE 기반으로 구성할 수 있기 때문에 보다 효율적인 리소스 관리가 가능하게됩니다.
데이터를 이용한 프로젝트를 구성하시게 된다면 꼭!
Dataproc을 다음과 같은 형태로 구성하여서 올바른 인프라를 구성해보시길 바래요~!
그럼 다음주에 만나요!!! 베빠!!
'CSP (Cloud Service Provider) > GCP' 카테고리의 다른 글
[GCP] Service Account Impersonate (0) | 2023.08.28 |
---|---|
Filestore란? (0) | 2023.08.18 |
[GCP] Terraform 로컬 환경 구축하기 (0) | 2023.08.18 |
[GCP] Dataproc (0) | 2023.08.17 |
[GCP] GCR과 GAR의 차이점 (0) | 2023.08.06 |
댓글