Skip to main content
QUICK REVIEW

[논문 리뷰] Serverless Data Analytics with Flint

Youngbin Kim, Jimmy Lin|arXiv (Cornell University)|2018. 03. 16.
Cloud Computing and Resource Management참고 문헌 5인용 수 5
한 줄 요약

Flint는 AWS Lambda와 SQS를 사용하여 서버리스 함수에서 PySpark 작업을 완전히 실행하고 데이터 셔플링을 메시지 큐로 오프로드함으로써, 정지 비용을 제거하는 서버리스 Spark 실행 엔진입니다. 주요 기여는 투명한 Spark 호환성과 지속적 인프라 없이도 완전히 서버리스로 분석 처리가 가능한 것을 입증한 것입니다.

ABSTRACT

Serverless architectures organized around loosely-coupled function invocations represent an emerging design for many applications. Recent work mostly focuses on user-facing products and event-driven processing pipelines. In this paper, we explore a completely different part of the application space and examine the feasibility of analytical processing on big data using a serverless architecture. We present Flint, a prototype Spark execution engine that takes advantage of AWS Lambda to provide a pure pay-as-you-go cost model. With Flint, a developer uses PySpark exactly as before, but without needing an actual Spark cluster. We describe the design, implementation, and performance of Flint, along with the challenges associated with serverless analytics.

연구 동기 및 목표

  • 기존 Spark 클러스터에서 흔한 정지 인프라 비용을 피하기 위해 순수 사용량 기반 요금제를 적용한 임시적이고 탐색형 데이터 분석을 가능하게 합니다.
  • 무상태 함수가 지속적 스토리지 유지가 불가능한 서버리스 환경에서 데이터 셔플링을 어떻게 구현할 수 있을지 도전 과제를 해결합니다.
  • 기존 Spark 컴포넌트와 가변형 스케줄러 백엔드를 재사용함으로써 개발자가 클러스터 관리 없이도 PySpark를 투명하게 사용할 수 있도록 투명한 Spark 경험을 제공합니다.
  • 일반적인 이벤트 기반 서버리스 사용 사례와 크게 다름에도 불구하고 분석 워크로드에 적합한 서버리스 아키텍처의 실현 가능성을 탐색합니다.
  • 서버리스 실행이 단순한 이벤트 처리를 넘어서 데이터 과학에서 요구하는 복잡하고 데이터 집약적인 워크로드를 지원할 수 있음을 입증합니다.

제안 방법

  • Spark 작업을 AWS Lambda 함수로 매핑하는 커스터마이즈된 SchedulerBackend를 구현하여 RDD 연산의 서버리스 실행을 가능하게 합니다.
  • 중간 데이터 셔플링을 관리하기 위해 Amazon Simple Queue Service(SQS)를 사용하여 기존의 메모리 또는 디스크 기반 셔플링을 대체합니다.
  • 입력 및 출력 데이터를 Amazon S3에 저장하여 분석 워크로드의 지속적 데이터 저장소로 내구성과 확장성을 활용합니다.
  • DAG 스케줄러 및 작업 스케줄러와 같은 기존 Spark 컴포넌트를 재사용하여 광범위한 Spark 생태계와의 호환성을 유지합니다.
  • 데이터 이동 및 조율 기능을 SQS에 오프로드하여 신뢰성 있고 확장 가능한 메시지 큐잉을 제공하고, 최소한 한 번의 전달 보장을 확보합니다.
  • 지속적 데몬 또는 장시간 실행되는 서비스가 전혀 없도록 설계하여 정지 비용이 없고 완전한 서버리스 준수를 확보합니다.

실험 결과

연구 질문

  • RQ1서버리스 아키텍처가 단순한 이벤트 기반 함수를 넘어서 복잡하고 데이터 집약적인 분석 워크로드, 예를 들어 Spark 워크로드를 효과적으로 지원할 수 있는가?
  • RQ2무상태 함수로 구성된 서버리스 환경에서 그룹화 및 조인과 같은 변환에 핵심적인 데이터 셔플링을 어떻게 효율적이고 신뢰성 있게 실행할 수 있는가?
  • RQ3기존 Spark 클러스터 대비 서버리스 함수와 메시지 큐를 사용할 경우 분석 처리에 대해 성능 및 비용의 상충 관계는 어떻게 되는가?
  • RQ4기존 Spark 라이브러리(예: MLlib, SparkSQL)가 서버리스 실행 백엔드와 얼마나 호환될 수 있는가?
  • RQ5성능나 신뢰성에 손해를 보이지 않으면서도 순수 사용량 기반 모델을 달성할 수 있는가?

주요 결과

  • Flint는 서버리스 아키텍처가 복잡한 RDD 변환과 데이터 셔플링을 포함한 전체 스케일의 Spark 분석 워크로드를 지원할 수 있음을 성공적으로 입증했습니다.
  • 중간 데이터 셔플링에 SQS를 사용함으로써 지속적 스토리지나 장시간 실행 프로세스 없이도 확장 가능한 무상태 데이터 이동이 가능해졌습니다.
  • 실행은 함수 호출당, 데이터 전송량에 따라 청구되며 인스턴스 시간 기반 청구가 없기 때문에 정지 비용이 전혀 없는 진정한 사용량 기반 모델을 달성했습니다.
  • PySpark 호환성이 유지되어 데이터 과학자들이 기존 코드를 수정하지 않고도 기존 코드를 사용할 수 있었으며, 단지 설정 변경만으로도 서버리스 백엔드로 전환할 수 있었습니다.
  • Lambda의 콜드 스타트와 메시지 큐 I/O로 인해 성능은 기존 클러스터보다 낮지만, 이는 주기적이고 탐색형 워크로드에서는 타당한 성능-비용 트레이드오프로 간주됩니다.
  • 시퀀스 ID를 통해 메시지 중복을 처리함으로써 SQS의 최소한 한 번 전달 보장 조건에도 불구하고 정확성을 확보했으며, 재시도 기능을 통해 개별 함수 장애에 대한 회복성이 확보되었습니다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.