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 스팟 시장 및 AWS Glue 데이터 카탈로그와의 통합, Auto Scaling으로 클러스터에서 인스턴스를 추가 또는 제거 등 추가적인 Amazon EMR 기능을 활용할 수 있습니다. 또한, Apache Zeppelin을 사용하여 Apache Spark를 통한 데이터 탐색을 위해 대화식 협업 노트북을 생성하고, Apache MXNet과 같은 딥 러닝 프레임워크를 Spark 애플리케이션과 함께 사용할 수 있습니다.

Spark-logo-192x100px
S3_Sketch_Available

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

S3_Sketch_HighPerformance

Apache Spark는 기본적으로 Java, Scala 및 Python을 지원하므로, 애플리케이션을 구축할 수 있도록 다양한 언어를 제공합니다. 또한, Spark SQL 모듈을 사용하여 SQL 또는 HiveQL 쿼리를 Apache Spark에 제출할 수 있습니다. 애플리케이션을 실행하는 것 외에도, 클러스터의 Apache Spark 셸에서 직접 Apache Spark API를 Python 또는 Scala와 대화식으로 사용할 수 있습니다. Zeppelin을 활용하여 데이터 탐색과 시각화를 위한 대화형 협업 노트북을 생성할 수도 있습니다. 또한, 클러스터의 네이티브 Spark UI 및 기록 서버 또는 Amazon EMR 콘솔의 Spark 애플리케이션 기록을 사용하여 워크로드를 튜닝하고 디버깅할 수 있습니다.

S3_Sketch_Simple

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

Benefit_Workflow_Green

Amazon EMR Step API로 Apache Spark 작업을 제출하고, EMRFS와 함께 Apache Spark를 사용하여 Amazon S3에 있는 데이터에 직접 액세스하며, Amazon EC2 스팟 용량을 사용하여 비용을 절감하고, Auto Scaling을 사용하여 용량을 동적으로 추가 및 제거하고, 워크로드에 맞춰 장기 실행 또는 휘발성 클러스터를 시작할 수 있습니다. 또한, Amazon EMR 보안 구성을 사용하여 Spark 암호화와 Kerberos를 통한 인증을 손쉽게 구성할 수 있습니다. 그 외에도 AWS Glue 데이터 카탈로그를 사용하여 Spark SQL 테이블 메타데이터를 저장할 수 있습니다. Amazon EMR은 하둡 YARN에서 Apache Spark를 설치 및 관리하고, 사용자는 클러스터에 다른 하둡 에코시스템 애플리케이션을 추가할 수도 있습니다. Amazon EMR 기능에 대한 자세한 내용은 여기를 클릭하십시오.


Yelp

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

The Washington Post

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

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은 이러한 워크로드에 드는 시간과 비용을 절감했습니다.
 

더 보기 »

Hearst Corporation

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

더 보기 »

CrowdStrike

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

더 보기 »


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

 

Amazon EMR 기반 Apache Spark에는 MLlib가 포함되어 있어 다양한 확장 가능한 기계 학습 알고리즘을 사용할 수 있으며, 사용자의 자체 라이브러리를 사용할 수도 있습니다. Spark는 작업 중에 데이터 세트를 인 메모리에 저장함으로써 기계 학습 워크로드에서 흔히 발생하는 반복 쿼리에 뛰어난 성능을 발휘합니다.

 

 

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