Apache Spark는 빅 데이터 워크로드에 주로 사용되는 오픈 소스 분산 처리 시스템입니다. Apache Spark는 빠른 성능을 위해 인 메모리 캐싱과 최적화된 실행을 사용하며, 일반 배치 처리, 스트리밍 분석, 기계 학습, 그래프 데이터베이스 및 임시 쿼리를 지원합니다.
하둡 YARN상의 Apache Spark는 Amazon EMR에서 기본적으로 지원하므로, AWS Management Console, AWS CLI 또는 Amazon EMR API를 통해 관리형 Apache Spark 클러스터를 빠르고 간편하게 생성할 수 있습니다. 그 밖에도, Amazon EMR 파일 시스템(EMRFS)을 사용한 빠른 Amazon S3 연결, Amazon EC2 스팟 시장과의 통합, 클러스터에서 인스턴스를 손쉽게 추가 또는 제거하는 크기 조정 명령 등을 비롯한 추가적인 Amazon EMR 기능을 활용할 수 있습니다. 또한, Apache Spark를 통해 데이터를 탐색할 수 있도록 Apache Zeppelin을 사용하여 대화형 협업 노트북을 생성할 수 있습니다.
Will Spark Power the Data behind Precision Medicine?
Analyze Your Data on Amazon DynamoDB with Apache Spark
Optimize Spark-Streaming to Efficiently Process Amazon Kinesis Streams
Submitting User Applications with spark-submit
Querying Amazon Kinesis Streams Directly with SQL & Spark Streaming
Running an External Zeppelin Instance using S3 Backed Notebooks with Spark on Amazon EMR
Apache Spark는 방향성 비순환 그래프(DAG) 실행 엔진을 사용함으로써 데이터 변환에 대한 효율적인 쿼리 계획을 생성할 수 있습니다. 또한, Apache Spark는 입력, 출력 및 중간 데이터를 인 메모리에 RDD(Resilient Distributed Dataset)로 저장하므로, I/O 비용 없이 반복 또는 대화형 워크로드를 빠르게 처리하고 성능을 높일 수 있습니다.
Apache Spark는 기본적으로 Java, Scala 및 Python을 지원하므로, 애플리케이션을 구축할 수 있도록 다양한 언어를 제공합니다. 또한, Spark SQL 모듈을 사용하여 SQL 또는 HiveQL 쿼리를 Apache Spark에 제출할 수 있습니다. 애플리케이션을 실행하는 것 외에도, Apache Spark API를 Python과 대화식으로 사용하거나 클러스터의 Apache Spark 셸에서 Scala를 직접 사용할 수 있습니다. Zeppelin을 사용하여 데이터 탐색과 시각화를 위한 대화형 협업 노트북을 생성할 수도 있습니다.
Apache Spark에는 기계 학습(MLlib), 스트림 처리(Spark Streaming) 및 그래프 처리(GraphX)용 애플리케이션을 구축하는 데 도움이 되는 몇 가지 라이브러리가 포함되어 있습니다. 이러한 라이브러리는 Apache Spark 에코시스템과 긴밀하게 통합되며, 다양한 사용 사례를 해결하는 데 바로 활용할 수 있습니다.
Amazon EMR Step API로 Apache Spark 작업을 제출하고, EMRFS와 함께 Apache Spark를 사용하여 Amazon S3에 있는 데이터에 직접 액세스하며, Amazon EC2 스팟 용량을 사용하여 비용을 절감하고, 워크로드에 맞춰 장기 실행 또는 휘발성 클러스터를 시작할 수 있습니다. Amazon EMR은 하둡 YARN에서 Apache Spark를 설치 및 관리하고, 사용자는 클러스터에 다른 하둡 에코시스템 애플리케이션을 추가할 수도 있습니다. Amazon EMR 기능에 대한 자세한 내용은 여기를 클릭하십시오.
Intent Media
Intent Media는 여행 상거래 사이트에 광고를 게시하는 플랫폼을 운영합니다. 데이터 팀은 Amazon EMR 기반 Apache Spark와 MLlib를 사용하여 매일 테라바이트 규모의 전자 상거래 데이터를 수집하고, 이 정보를 의사 결정 서비스를 지원하는 데 사용하여 고객 매출을 최적화합니다. 여기를 클릭하여 자세히 알아보십시오.
Krux
Krux는 고객 통찰력을 위한 데이터 관리 플랫폼의 한 부분으로 Apache Spark를 사용하여 많은 기계 학습 및 일반 처리 워크로드를 실행합니다. Krux는 휘발성 Amazon EMR 클러스터를 Amazon EC2 스팟 용량과 함께 사용하여 비용을 절감하고, EMRFS를 통해 Amazon S3를 Apache Spark용 데이터 계층으로 사용합니다.
GumGum
인 이미지 및 인 스크린 광고 플랫폼인 GumGum은 Amazon EMR 기반 Spark를 사용하여 인벤토리 예측, 클릭스트림 로그의 처리, 그리고 Amazon S3에 있는 비정형 데이터의 임시 분석을 수행합니다. Spark를 통한 성능 향상으로 GumGum은 이러한 워크로드에 드는 시간과 비용을 절감했습니다.
CrowdStrike
CrowdStrike는 침해 방지를 위한 엔드포인트 보안을 제공합니다. Amazon EMR을 Spark와 함께 사용하여 수백 테라바이트 규모의 이벤트 데이터를 처리하고, 호스트에 대해 더 높은 수준의 행동 설명을 도출합니다. CrowdStrike는 해당 데이터에서 이벤트 데이터를 함께 가져와서 악의적 행동이 존재하는지 확인할 수 있습니다.
Amazon Kinesis나 Apache Kafka에서 또는 Amazon EMR 기반 Spark Streaming의 다른 데이터 스트림에서 실시간 데이터를 사용하고 처리합니다. 내결함성이 지원되는 방식으로 스트리밍 분석을 수행하고, Amazon S3 또는 클러스터 상 HDFS에 결과를 작성합니다.
- Apache Spark가 포함된 Amazon EMR 클러스터를 생성하는 방법에 대한 지침
- Spark 프로젝트에 대한 자세한 내용은 Spark 프로젝트용 The Apache Software Foundation 웹 사이트 참조
- AWS 블로그의 Amazon EMR 기반 Spark 출시 관련 게시물 및 데모
- Intent Media가 Amazon EMR 기반 Apache Spark를 사용한 기계 학습에 대해 작성한 AWS 빅 데이터 블로그의 게시물