Apache Spark란?

qwer·2022년 1월 27일
2

Apache Spark

목록 보기
1/4

1. Spark의 등장 배경

  • 기존 빅데이터 처리 시스템은 하둡 에코시스템(Hadoop Ecosystem) 이 시장을 지배
  • 하둡은 다수의 서버를 클러스터화 하여 빅데이터를 클러스터에서 분산 저장 및 병렬 처리하여 처리 속도를 높여줌
  • 하지만 하둡의 MapReduce는 Disk 기반으로 동작하기 때문에 속도가 느리다는 단점이 존재
  • Spark는 이러한 하둡의 Disk I/O 기반의 단점을 극복하고자 In Memory의 연산을 통해 처리성능을 향상시키고자 등장하게 됨

2. Spark의 특징

Spark는 아파치 재단의 오픈소스로 관리되고 있는 인메모리 기반의 대용량 데이터 고속 처리 엔진으로서 범용 분산 클러스터 컴퓨팅 프레임워크

인메모리와 지연평가 기반의 빠른 처리

  • Spark는 연산을 인메모리 방식 뿐만이 아니라 지연평가(Lazy Evaluation) 방식을 사용하여 최적의 실행계획을 제공함으로써 하둡의 MapReduce 기반 작업처리보다 100배 가량 빠른 속도를 제공

다양한 프로그래밍 언어 지원

  • Spark는 scala로 작성된 프레임워크지만 scala 이외에 java, python, R 등 다양한 언어를 지원 (단, 언어마다 처리속도가 다름)

다양한 클러스터 매니저 지원

  • Spark는 클러스터 매니저로 YARN, Mesos, Kubernetes, standalone를 지원

다양한 파일 포맷 지원

  • TXT, JSON, ORC, Parquet 등 다양한 파일 포맷을 지원

다양한 source 저장소 연동 지원

  • S3, HDFS, HBase, Hive, Kafka 등 다양한 source 저장소와의 연동 지원

3. Spark의 라이브러리

Spark SQL

  • SQL을 이용하여 RDD, DataFrame, DataSet 작업을 생성하고 처리
  • Hivemetastore와 연동하여 하둡의 데이터를 SQL로 호출 가능

Spark Streaming

  • 실시간 데이터 스트림을 처리하는 라이브러리

MLlib

  • 머신러닝 기능을 제공하는 라이브러리
  • Classification, Regression, Clustering 등 다양한 머신러닝 라이브러리를 지원

GraphX

  • 분산형 그래프 프로세싱을 처리해주는 라이브러리




참고자료

0개의 댓글