Amazon EMR 기반 Apache Spark

Apache Spark on EMR을 선택해야 하는 이유

Amazon EMR은 Apache Spark를 실행하기에 가장 적합한 서비스입니다. AWS Management Console, AWS CLI 또는 Amazon EMR API에서 관리형 Spark 클러스터를 쉽고 빠르게 생성할 수 있습니다. 그 밖에도 Amazon EMR 파일 시스템(EMRFS)을 사용한 빠른 Amazon S3 연결, Amazon EC2 스팟 시장 및 AWS Glue Data Catalog와의 통합, EMR 관리 스케일링으로 클러스터에서 인스턴스를 추가 또는 제거 등 추가적인 Amazon EMR 기능을 활용할 수 있습니다. AWS Lake Formation은 세분화된 액세스 제어 기능을 제공하며 AWS Step Functions와 통합하면 데이터 파이프라인과 오케스트레이션하는 데 도움이 됩니다. EMR Studio(평가판)가 통합 개발 환경(IDE)을 제공하므로 데이터 사이언티스트와 데이터 엔지니어는 R, Python, Scala 및 PySpark에서 작성한 데이터 엔지니어링 및 데이터 과학 애플리케이션을 쉽게 개발, 시각화 및 디버그할 수 있습니다. EMR Studio는 완전 관리형 Jupyter 노트북과 Spark UI 및 YARN Timeline Service와 같은 도구를 제공하여 디버깅을 간소화했습니다. 또한 EMR Notebooks를 활용하면 Spark를 통한 애플리케이션의 실험 및 구축이 더 쉬워집니다. 원하는 경우 Spark를 통해 데이터를 탐색할 수 있도록 Apache Zeppelin을 사용하여 대화형 협업 노트북을 생성할 수 있습니다.

여기에서 Apache Spark에 대해 자세히 알아보기

기능 및 이점

Amazon EMR runtime for Apache Spark를 발표하게 되어 기쁩니다. 이 런타임은 최적화된 성능의 Apache Spark용 런타임 환경으로, Amazon EMR 클러스터에서 사용할 수 있습니다. Amazon EMR runtime for Apache Spark은 EMR 런타임이 없는 클러스터보다 3배 이상 빠르며 표준 Apache Spark와 100% API 호환됩니다. 이처럼 개선된 성능 덕분에 애플리케이션을 변경하지 않아도 워크로드가 더 빨리 실행되고 컴퓨팅 비용이 절감됩니다.

Spark는 방향성 비순환 그래프(DAG) 실행 엔진을 사용함으로써 데이터 변환에 대한 효율적인 쿼리 계획을 생성할 수 있습니다. 또한 Spark는 입력, 출력 및 중간 데이터를 인 메모리에 복원력이 뛰어난 데이터 프레임으로 저장하므로, I/O 비용 없이 반복 또는 대화형 워크로드를 빠르게 처리하고 성능을 높일 수 있습니다.

Apache Spark는 기본적으로 Java, Scala, SQL 및 Python을 지원하므로, 애플리케이션을 구축할 수 있도록 다양한 언어를 제공합니다. 또한 Spark SQL 모듈을 사용하여 SQL 또는 HiveQL 쿼리를 제출할 수 있습니다. 애플리케이션을 실행하는 것 외에도, 클러스터의 Spark 셸에서 또는 Jupyter 노트북을 통해 직접 Spark API를 Python 또는 Scala와 대화식으로 사용할 수 있습니다. EMR 6.0에서는 Apache Hadoop 3.0이 지원됨에 따라 Docker 컨테이너가 지원되어 종속성 관리가 단순화됩니다. 또한 클러스터에 독립적인 EMR Notebooks(Jupyter 기반)를 활용하거나 Zeppelin을 사용하여 데이터 탐색과 시각화를 위한 대화형 협업 노트북을 생성할 수도 있습니다. 클러스터 외부의 영구 Spark 기록 서버가 있는 EMR 콘솔에서 워크로드를 튜닝하고 디버깅할 수 있습니다.

Apache Spark에는 기계 학습(MLlib), 스트림 처리(Spark Streaming) 및 그래프 처리(GraphX)용 애플리케이션을 구축하는 데 도움이 되는 몇 가지 라이브러리가 포함되어 있습니다. 이러한 라이브러리는 Spark 에코시스템과 긴밀하게 통합되며, 다양한 사용 사례를 해결하는 데 바로 활용할 수 있습니다. 또한, Apache MXNet과 같은 딥 러닝 프레임워크를 Spark 애플리케이션과 함께 사용할 수 있습니다. AWS Step Functions와 통합하면 서버리스 워크플로 자동화 및 오케스트레이션을 애플리케이션에 추가할 수 있습니다.

EMR Step API로 Apache Spark 작업을 제출하고, EMRFS와 함께 Spark를 사용하여 S3에 있는 데이터에 직접 액세스하며, EC2 스팟 용량을 사용하여 비용을 절감하고, EMR 관리형 스케일링을 사용하여 용량을 동적으로 추가 및 제거하고, 워크로드에 맞춰 장기 실행 또는 임시 클러스터를 시작할 수 있습니다. 또한 EMR 보안 구성을 사용하여 Spark 암호화와 Kerberos를 통한 인증을 손쉽게 구성할 수 있습니다. 그 외에도 AWS Glue Data Catalog를 사용하여 Spark SQL 테이블 메타데이터를 저장하거나 Amazon SageMaker를 Spark 기계 학습 파이프라인에 사용할 수 있습니다. EMR은 하둡 YARN에서 Spark를 설치 및 관리하고, 사용자는 클러스터에 다른 빅 데이터 애플리케이션을 추가할 수도 있습니다. EMR with Apache Hudi를 사용하면 변경 데이터 캡처(CDC)를 좀 더 효율적으로 관리할 수 있는 것은 물론, 레코드 삭제가 간소화되어 GDPR 및 CCPA 같은 개인정보 보호 규정을 준수하는 데 도움이 됩니다. EMR 기능에 대해 자세히 알아보려면 여기를 클릭하세요.

사용 사례

Amazon Kinesis, Apache Kafka에서, 또는 Spark Streaming on EMR의 다른 데이터 스트림에서 실시간 데이터를 사용하고 처리합니다. 내결함성이 지원되는 방식으로 스트리밍 분석을 수행하고, S3 또는 클러스터상 HDFS에 결과를 작성합니다.

EMR 기반 Apache Spark에는 MLlib가 포함되어 있어 다양한 확장 가능한 기계 학습 알고리즘을 사용할 수 있으며, 사용자의 자체 라이브러리를 사용할 수도 있습니다. Spark는 작업 중에 데이터 세트를 인 메모리에 저장함으로써 기계 학습 워크로드에서 흔히 발생하는 반복 쿼리에 뛰어난 성능을 발휘합니다. 모델을 쉽게 훈련하고 모델을 호스팅하도록 Amazon SageMaker Spark를 통해 노트북 인스턴스를 Amazon EMR에 실행한 Apache Spark 클러스터에 연결하면 Amazon SageMaker 기능을 향상시킬 수 있습니다.

짧은 지연 시간과 SQL 또는 HiveQL과의 쿼리를 위해 Spark SQL을 사용합니다. EMR 기반 Spark는 EMRFS를 활용할 수 있으므로, S3에 있는 데이터 세트에 임의 액세스할 수 있습니다. 또한 ODBC 또는 JDBC 연결을 통해 EMR Notebooks, Zeppelin 노트북 또는 BI 도구를 사용할 수 있습니다.

고객 성공 사례

  • Yelp

    Yelp의 광고 타겟팅 팀은 사용자가 광고와 상호 작용할 가능성을 확인할 수 있는 예측 모델을 만듭니다. Amazon EMR 기반 Apache Spark를 사용하여 기계 학습 모델을 교육하는 데 사용할 대량의 데이터를 처리함으로써 Yelp는 매출과 광고 클릭률을 높였습니다.

  • The Washington Post

    The Washington Post는 독자의 참여와 만족도를 높이기 위해 Amazon EMR 기반 Apache Spark를 사용하여 웹 사이트의 추천 엔진을 지원하는 모델을 구축합니다. Amazon EMR이 Amazon S3와 강력하게 연결된다는 점을 활용하여 모델을 거의 실시간으로 업데이트합니다.

  • Krux

    Krux는 고객 통찰력을 위한 데이터 관리 플랫폼의 한 부분으로 Apache Spark를 사용하여 많은 기계 학습 및 일반 처리 워크로드를 실행합니다. Krux는 휘발성 Amazon EMR 클러스터를 Amazon EC2 스팟 용량과 함께 사용하여 비용을 절감하고, EMRFS를 통해 Amazon S3를 Apache Spark용 데이터 계층으로 사용합니다.

    더 보기 »
  • GumGum

    인 이미지 및 인 스크린 광고 플랫폼인 GumGum은 Amazon EMR 기반 Spark를 사용하여 인벤토리 예측, 클릭스트림 로그의 처리, 그리고 Amazon S3에 있는 비정형 데이터의 임시 분석을 수행합니다. Spark를 통한 성능 향상으로 GumGum은 이러한 워크로드에 드는 시간과 비용을 절감했습니다.

    더 보기 »
  • Hearst Corporation

    다각화된 대형 미디어 및 정보 회사인 Hearst Corporation은 고객에게 200개가 넘는 웹 자산의 콘텐츠를 제공합니다. Hearst의 편집진은 Amazon EMR 기반 Apache Spark Streaming을 사용하여 어떤 기사가 반응이 좋고 어떤 주제가 요즘 추세인지 실시간으로 확인할 수 있습니다.

    더 보기 »
  • CrowdStrike

    CrowdStrike는 침해 방지를 위한 엔드포인트 보안을 제공합니다. Amazon EMR을 Spark와 함께 사용하여 수백 테라바이트 규모의 이벤트 데이터를 처리하고, 호스트에 대해 더 높은 수준의 행동 설명을 도출합니다. CrowdStrike는 해당 데이터에서 이벤트 데이터를 함께 가져와서 악의적 행동이 존재하는지 확인할 수 있습니다.

    더 보기 »