반응형
/*
-- 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 제공 | - |
■ 스파크 주요 특징
- 속도 : 인메모리 기반의 빠른 처리
- 사용의 편리성 : 다양한 언어 지원(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
반응형