Hadoop EcoSystem

Apache Spark 이란

비번변경 2023. 11. 10. 18:13

Spark

머신 러닝 및 AI 애플리케이션을 위한 오픈 소스 데이터 처리 엔진. 대규모 데이터를 처리하기 위한 오픈소스이다.

SQL, 스트리밍 데이터 ,머신러닝, 그래프 처리 등을 위한 기능을 제공하며, 빅데이터 처리에 필요한 컴퓨팅 속도, 확장성 등을 고려하여 설계되었다. 병렬성과 내결함성을 바탕으로 작업을 어려 컴퓨터로 구성된 클러스터에 분산시킬 수 있고, 인메모리 처리 엔진으로 다른 엔진보다 빠른 처리 속도를 기대할 수 있다.

Spark는 Java, Scala, Python, R 등에서 사용할 수 있다.

 

 

특징

Apache Spark는 다음과 같은 특징을 가진다.

  • 속도 (Speed) : 디스크 읽기/쓰기 작업을 최소화하여 Hadoop보다 10배, 100배 빠르게 처리할 수 있다.
  • 내결함성 (Fault Tolerance) : 워커 노드 장애를 처리하도록 설계된 RDD(Resilient Distributed Datasets)라는 스파크 추상화 계층을 사용한다.
  • Lazy Evaluation : Spark RDD/Datasets에서의 모든 처리는 Lazy evaluation으로 처리된다.
  • Dynamic nature : 병렬 처리 애플리케이션을 쉽게 구축할 수 있도록 80개 이상의 고급 연산자를 제공한다. 
  • 다중 언어 지원 (Multplie Language Support) : Scala, Python, R, SQL Shcell에서 대화형으로 사용할 수 있고, 다중 프로그래밍 언어 지원을 제공한다. 
  • 재사용성 (Reusablity) : Spark 코드는 배치 처리, 과거 데이터에 대한 스트리밍 데이터 결합, 스트리밍 상태에 대한 임시 쿼리 실행을 위해 사용할 수 있다.
  • 머신 러닝 (Machine Learning) : 복잡하고 예측 가능한 데이터 분석에 사용할 수 있는 MLib이라는 머신 러닝을 지원한다. 
  • 그래프 처리 (Graph Processing) : 그래프 병렬 계산을 위한 API인 GraphX를 제공한다.
  • 실시간 스트리밍 처리 (Real-Time Stream Processing) : 스트림 처리릉 위해 스파크 언어와 연동된 API를 제공하여 배치 작업을 작성하는 것과 동일한 방식으로 스트리밍 처리를 작성할 수 있다.

 

 

 

 

 

참고 문서

https://www.ibm.com/kr-ko/topics/apache-spark

https://eduinpro.com/blog/apache-spark-vs-hadoop-mapreduce/