반응형

/*
-- Title : [Spk] Apache Spark 소개
-- Tag : apache spark 아파치 스파크
*/


■ 스파크 등장 배경

ㅁ 하둡(Hadoop)

  • 디스크 기반의 대용량 데이터 처리를 위한 오픈 소스 프레임워크
  • 물리적 저장 장치에 데이터 입력 > 파일 시스템에 파일 존재 > 디스크들이 분산 되어 저장
  • 배치 처리 할 때 좋음(기간 단위 모아서 처리)
  • 실시간 데이터 처리에 비효율적
  • 동기적 작업(스탭 바이 스탭/싱크 맞춰서 처리)은 좋음
  • 비동기적 데이터 처리(대상 중 하나가 없어도 데이터 보냄>추후 처리)에 비효율적
  • 반복 작업이 많은 경우 비효율적

ㅁ 스파크(Spark)

  • Hadoop MR의 느린 성능 해결 필요
  • In-Memory 기반의 통합 컴퓨팅 엔진
  • 빅데이터 환경에서 데이터를 병렬 처리 및 분석이 가능한 오픈소스 SW
  • 2009년 UC 버클리대의 AMP랩에서 기존 Hadoop보다 빠르게를 목표로 시작

ㅁ 스파크 vs. 하둡

  Spark Hadoop
역할 데이터 분산 처리  데이터 분산/저장 처리
기반 인메모리 디스크
데이터 처리 방법 배치/인터랙티브/스트리밍/... 배치(Batch)
개발 언어 Scala Java
지원 언어 Scala, Java, Python, R Java
SQL 지원 지원 -
속도 Hadoop MapReduce * 100배 -
데이터 소스 HDFS, S3, DBMS, Elastics Search 등 HDFS
데이터 분석 Spark MLlib 자체 제공 별도 패키지 필요
그래프 처리 GraphX API 제공 -


■ 스파크 주요 특징

http://hbiedu.co.kr/incumbent/edu_detail.jsp?seq=11

  • 속도 : 인메모리 기반의 빠른 처리
  • 사용의 편리성 : 다양한 언어 지원(Scala, Java, Python, R)
  • 호환성 : 다양한 라이브러리(SQL, MLib, GraphX 등) 여러  컴포넌트와 연동하여 사용 가능
  • 대중성 : 다양한 데이터 소스(HDFS, S3, Elastic 등) 액세스 가능

ㅁ 실시간 데이터 스트리밍

증분 처리, 체크포인트, 워터마크 등 복잡한 스트리밍 개념을 단순화하여 스트리밍 애플리케이션이나 파이프라인 구축이 가능하다. Spark Straming을 통해 지원한다.

ㅁ 일괄 배치 처리

스트리밍과 동시에 배치 환경도 제공하기에 두 가지 다른 기술 스택을 따로 개발/운영할 필요가 없다. 일괄 배치에 필요한 작업을 병렬로 사용하기 위해 필터링 및 집계 등을 할 수 있다.

ㅁ MLlib를 통한 기계 학습

Spark에서는 MLlib 기계학습 라이브러리를 제공하고 여러 기계 학습 알고리즘과 유틸리티가 포함되어 있다. 

ㅁ GraphX를 통한 그래프 처리

Spark에서는 그래프 및 그래프 병렬 처리를 위해 GraphX라는 API를 제공한다.

ㅁ SQL 및 정형 데이터 처리

정형 데이터를 지원하기 위해 Spark SQL을 제공하여 애플리케이션에서 SQL 쿼리를 조회할 수 있다.

 

 


※ Resources
https://goeuntech.notion.site/1-Architecture-4221ac5dc585473eb568c68035885430
https://ko.wikipedia.org/wiki/%EC%95%84%ED%8C%8C%EC%B9%98_%EC%8A...
spark.apache.org

 

반응형

+ Recent posts