주요 컨텐츠로 이동

아파치 스파크 (Apache Spark)

Databricks 무료로 시작하기

Apache Spark란 ?

Apache Spark는 빅데이터 워크로드에 쓰이는 오픈 소스 분석 엔진입니다. 배치는 물론 실시간 분석과 데이터 처리 워크로드도 처리할 수 있습니다. Apache Spark는 2009년 캘리포니아 대학교 버클리 캠퍼스에서 연구 프로젝트로 시작되었습니다. 연구진은 하둡 시스템에서 처리 작업의 속도를 높일 방법을 강구하고 있었습니다. 이 엔진은 하둡 MapReduce 기반이었으며 MapReduce 모델을 확장하여 더 많은 연산 유형에 이를 효율적으로 이용하고자 하였는데, 인터랙티브 쿼리와 스트림 처리 등이 대표적인 예입니다. Spark는 Java, Scala, Python과 R 프로그래밍 언어에 네이티브 바인딩을 제공합니다. 또한 여러 개의 라이브러리를 포함하여 머신 러닝 빌드 애플리케이션을 지원하고 [MLlib] 스트림 처리 [Spark Streaming] 및 그래프 처리 [GraphX]도 지원합니다. Apache Spark는 Spark Core와 일련의 라이브러리로 구성되어 있습니다. Spark Core는 Apache Spark의 핵심이며 분산형 작업 전송, 일정 예약과 I/O 기능 제공을 담당합니다. Spark Core 엔진은 RDD(Resilient Distributed Dataset) 개념을 기본 데이터 유형으로 사용합니다. RDD는 사용자에게 대부분의 연산 복잡성을 숨기도록 고안되어 있습니다. Spark는 데이터에 작용하는 방식이 지능적이라 데이터와 파티션이 서버 클러스터 하나를 가로질러 집계된 다음 컴퓨팅을 거쳐 다른 데이터 스토어로 이동하거나 분석 모델을 거쳐 가게 됩니다. 사용자에게는 파일을 저장하거나 검색하기 위해 파일 목적지를 지정하거나 어느 연산 리소스를 사용할지 지정하라는 요청을 하지 않습니다.RDD(Resilient Distributed Datasets)

Apache Spark의 장점은 무엇입니까?

Apache Spark의 장점

속도

Spark는 여러 개의 병렬 작업에 걸쳐 데이터를 메모리에 캐시하여 무척 빠른 실행 속도를 자랑합니다. Spark의 주된 특징은 메모리 내(in-memory) 엔진으로서 처리 속도를 높여 대규모 데이터 처리에 관한 한 메모리 내에서 처리 시 MapReduce 대비 최고 100배 빠르고 디스크에서 처리 시 10배 빠르다는 점입니다. Spark는 디스크 작업을 대상으로 하는 읽기/쓰기 작업의 수를 줄여 이런 결과를 달성합니다.

실시간 스트림 처리

Apache Spark는 실시간 스트리밍을 처리하기도 하고, 다른 프레임워크와 통합할 수도 있습니다. Spark는 미니 배치 형태로 데이터를 수집하여 그러한 데이터 미니 배치에 RDD 변환을 수행합니다.

여러 워크로드 지원

Apache Spark는 여러 개의 워크로드를 실행할 수 있습니다. 인터랙티브 쿼리, 실시간 분석, 머신 러닝과 그래프 처리 등이 모두 포함됩니다. 한 개의 애플리케이션이 여러 워크로드를 원활하게 조합할 수 있습니다.

사용 편리성 증가

Spark는 여러 가지 프로그래밍 언어를 지원할 수 있기 때문에 동적입니다. 즉 Java, Scala, Python 및 R로 신속하게 애플리케이션을 작성할 수 있는 등, 애플리케이션을 빌드할 때 다양한 언어 선택권을 부여합니다.

고급 분석

Spark는 SQL 쿼리, 머신 러닝, 스트림 처리와 그래프 처리를 지원합니다.

추가 자료

용어집으로 돌아가기