본문 바로가기
CSP (Cloud Service Provider)/GCP

[GCP] Dataproc

by BTC_오은영석사 2023. 8. 17.

베하~! 안녕하세요 금쪽상담소의 오은영석사와 금쪽이입니다~

지난 한 주 무탈하게 지내셨나요?! 

무더위는 한풀꺾이는 지금 가을이 성큼성큼 다가오고 있다는 것을 느낄수 있었던 한 주 였던 거 같습니다.

이번 시간에는 무엇을 배울까요???

두구두구두구....

바로 Dataproc입니다...! 열심히 배워봅시다!!

 


 

Dataproc 이란?

일괄 처리, 쿼리, 스트리밍, 머신 러닝에 오픈소스 데이터 도구를 활용할 수 있는 관리형 Spark 및 Hadoop 서비스입니다.

Dataproc 자동화를 통해 신속하게 클러스터를 만들고 손쉽게 관리하며 불필요한 클러스터를 사용 중지하여 비용을 절감할 수 있습니다.

따라서, 관리 시간과 비용이 절감되므로 작업과 데이터에 집중할 수 있습니다.

 

 

Hadoop 

각 노드에 있는 디스크를 하나인 것처럼 클러스터링하여 사용할 수 있는것으로 HDFS(Hadoop Distributed File System)에 데이터가 분산 저장된다.

대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 방법으로, 여러 노드에 태스크를 분배하는 것을 맵리듀스라고 한다

 

Dataproc cluster 아키텍처

HDFS는 저장소 역할 여러노드가 있을 때 이 노드들을 제어해주는 master node가 있어야 한다. (마스터노드는 여기서 보이지 않는다. 실제 일을 하는 워커 노드만이 나타남)

임시적으로 노드를 더 많이 늘린다음 작업을 할 수도 있는데 이러한 노드를 Preemptible VMs라고 한다.

안쓰고 있는 자원을 우리가 짧게 가져다 쓰는 것이지만 fail이 났을 때 큰 문제가 생기는 상황에선 쓰지 않는 것이 낫다.

 

Dataproc 장점

  • 저렴한 비용
    • Dataproc은 사용 중인 다른 Cloud Platform 리소스 외에 시간당 클러스터의 가상 CPU당 1센트의 비용으로 가격이 책정됩니다.
    • 이 저렴한 가격 외에도 Dataproc 클러스터에는 컴퓨팅 가격이 더 낮은 선점형 인스턴스를 포함하여 비용을 더 줄일 수 있습니다.
  • 생성 속도 빠름
    • 사내에 또는 IaaS 제공업체를 통해 Spark 및 Hadoop 클러스터를 만드는 데 5분에서 30분까지 소요될 수 있으나 Dataproc 클러스터는 빠르게 시작하고 확장하며 종료할 수 있습니다.
    • 각각의 작업을 수행하는 데는 평균 90초도 채 걸리지 않습니다.
    • 클러스터를 기다리는 시간을 줄이고 대신 데이터 작업에 더 많은 시간을 할애할 수 있습니다.
  • GCP 서비스 통합
    • Dataproc은 BigQuery, Cloud Storage, Cloud Bigtable, Cloud Logging, Cloud Monitoring과 같은 다른 Google Cloud Platform 서비스와 기본적으로 통합되어 있으므로 Spark 또는 Hadoop 클러스터 이상의 완벽한 데이터 플랫폼을 사용할 수 있습니다.
  • 관리형 서비스
    • 관리자의 지원을 받거나 특별한 소프트웨어를 사용하지 않고도 Spark 및 Hadoop 클러스터를 사용할 수 있습니다.
    • Google Cloud Console, Cloud SDK, Dataproc REST API를 통해 클러스터 및 Spark 또는 Hadoop 작업과 쉽게 상호작용할 수 있습니다.
    • Dataproc은 Cloud Storage, BigQuery, Cloud Bigtable과 통합되므로 데이터 손실에 대해 걱정할 필요가 없습니다.
  • 간단하고 쉽게 사용 가능
    • Dataproc을 사용하기 위해 새로운 도구나 API를 배울 필요가 없으므로 재개발하지 않고 기존 프로젝트를 Dataproc으로 쉽게 이동할 수 있습니다.
    • Spark, Hadoop, Pig, Hive는 자주 업데이트되므로 보다 신속하게 생산성을 높일 수 있습니다.

 

Cloud Dataproc vs Cloud Dataflow

Cloud Dataproc과 Cloud Dataflow는 데이터 처리/분석 제품으로 모두 배치와 스트리밍 데이터를 처리합니다. 비슷한 서비스이지만 어떤한 차이점이 있는지 알아보겠습니다.

 

1. Cloud Dataproc 

Cloud Dataproc은 Apache Spark와 Apache Hadoop 클러스터를 더 간단하고 효율적으로 실행할 수 있게 도와줄 수 있는 관리형 서비스입니다. 단순히 관리형 서비스이므로 클러스터의 수는 사용자가 직접 조절하여야 합니다. 

 

Dataflow를 설명하기 전에 Spark와 Hadoop, 그리고 Dataflow의 기본이 되는 Apache Beam에 대한 얘기를 먼저 해야합니다. Spark나 Hadoop과 같은 대용량 분산 처리 시스템은 특정 노드의 연산이 늦게 끝나면 전체 연산이 늦게 끝나는 경우가 많다는 문제점을 가집니다. 예를 들면, 대용량의 데이터를 가지고 분산 처리하여 결과를 모두 합치는 연산의 경우, 단지 몇 개의 노드가 연산이 늦게 끝나도 전체 값을 계산하기 위해 나머지 노드들이 기다려야하고 전체 시간이 느려지게 됩니다.  

 

구글에서 개발하고 오픈소스로 내놓은 Apache Beam은 Apache Spark의 다음 세대 스트리밍 프레임웍으로 생각할 수 있습니다. Apache Beam은 리밸런싱(rebalancing)이라는 알고리즘을 통해 Spark와 Hadoop보다 더 나은 성능을 보여주는데, 리밸런싱이란 특정 노드의 연산이 느려진 경우 느려진 노드의 데이터를 연산이 끝나 대기하는 다른 노드로 옮겨 전체 연산 시간을 줄이는 방법입니다.

 

2. Cloud Dataflow

Cloud Dataflow는 이런 Apache Beam을 완전 관리형 서비스로 출시한 제품으로 서버리스 특징으로 작업의 양에 따라 리소스를 자동으로 프로비저닝하고 관리해줍니다. 

 

Cloud Dataproc과 Cloud Dataflow의 선택 flow차트

위의 그림을 통해 Dataproc과 Dataflow를 언제 사용해야하는지 명확하게 확인할 수 있습니다.

 

기존에 Apache Hadoop과 Spark 환경을 가지거나 직접 DevOps를 하는 환경을 원하는 사용자라면 Dataproc을 사용하는 것을 추천하고 있으며, 스트리밍 및 배치 데이터 처리를 Serverless로 하고자 한다면 Dataflow를 추천하고 있습니다. 

 


 

이렇게 간단하게 Dataproc에 대해 알아보았습니다!!

Dataproc을 통해 손쉽게 클러스터 생성 및 관리를 해보시는 것을 추천드립니다!!

다음시간에는 Dataproc 생성 실습에 대해 돌아오도록 하겠습니다!

그럼 금쪽이들 다음시간에 만나요!

베빠~!

 

<출처>

https://cloud.google.com/dataproc/docs/concepts/overview?hl=ko 

https://dong-life.tistory.com/58

https://velog.io/@minbrok/Dataproc

댓글