스파크 편집하기

IT위키

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
1번째 줄: 1번째 줄:
[[분류:데이터 과학]]
[[분류:데이터 분석]]
 
;Spark
;Spark
;대용량 데이터를 빠르게 처리하기 위한 인-메모리 기반의 분산 데이터 처리 엔진
* UC 버클리의 AMP 랩에서 개발하였으며, 현재 아파치 재단에서 관리
* UC 버클리의 AMP 랩에서 개발하였으며, 현재 아파치 재단에서 관리
* 공개 소프트웨어로, 창시자가 설립한 [[데이터브릭스]]에서 주로 개발
* 인-메모리 방식의 분산 처리 시스템
 
==등장 배경 및 특징==
 
*[[하둡]]과 같은 분산 컴퓨팅에서 기존 디스크 입출력에 대한 시간 지연 발생
**반복적인 작업이나 실시간 처리를 위해 빠른 처리 필요
 
=== 하둡과의 비교 ===
 
* 하둡의 맵리듀스는 프로그램 처리 단계별로 중간 처리 데이터를 모두 하드디스크에 저장
** 맵리듀스 잡의 다른 맵리듀스 잡에서 사용하려면 디스트 저장 → HDFS에 저장 과정 필요
** 복잡한 단계를 가진 단계적 데이터처리에 부적합
* 스파크는 필요한 데이터를 메모리에 캐시로 저장하는 인-메모리 실행 방식 채택
** 단계별 처리 시 기존 결과를 메모리에 저장하고 메모리에서 불러옴으로써 I/O 시간 단축
 
=== 스파크의 특징 ===
 
*대량의 데이터를 메모리에 유지하는 설계로 계산 성능 대폭 강화
**스파크 프로그램은 하둡의 맵리듀스보다 약 100개 더 빠른 속도로 동작
*파이썬, 자바, 스칼라, R 등 기존 타 플랫폼 사용자를 광범위하게 포용
*일괄 처리, 실시간 처리(스트리밍), 정형데이터 [[SQL]] 처리, 그래프 알고리즘, [[머신러닝]] 등 다양한 요구사항 통합
 
== 활용성 ==


* 하둡을 대체하여 빠른 속도로 성장 중이며 대용량 데이터 처리가 필요한 곳에서 범용적으로 활용
== 등장 배경 ==
* 온라인 트랜잭션 처리(OLTP)보다 온라인 분석 처리(OLAP)에 더 적합
* 기존 디스크 입출력에 대한 지연 시간 개선
** 분산처리를 위한 시간적 오버헤드 발생
* 반복적인 작업이나 실시간 처리를 위해 빠른 처리 필요
** 아주 작은 데이터를 처리 할 때도 기본적인 준비 과정 보유 → 소규모 데이터는 일반 DBMS가 유리


==구조 및 구성 요소==
== 구조 및 구성 요소 ==
[[파일:스파크 프레임워크 구조.png]]
[[파일:스파크 프레임워크 구조.png]]
* SQL: 정형화된 SQL 지원
* Streaming: 데이터 스트림을 세그먼트로 나눈 후 각각을 스파크 엔진으로 처리
* MLlib: [[회귀]], [[SVM]], [[의사 결정 나무]], [[랜덤 포레스트]] 등 [[머신러닝]] 라이브러리 제공
* GraphX: 페이지 랭크, 레이블 전파, 삼각 계수 등 그래프 알고리즘 지원
* Core: 분산 처리, 스케줄링, API 인터페이스 지원
* 작업 처리 레이어: 스파크만으로 처리할 수도 있고, 하둡 Yarn, Mesos 등과 연계 가능


*'''SQL:''' 정형화된 SQL 지원
== 참조 문헌 ==
*'''Streaming:''' 데이터 스트림을 세그먼트로 나눈 후 각각을 스파크 엔진으로 처리
* [https://www.youtube.com/watch?v=O35dLfyklm0 빅데이터 051 인메모리 데이터 처리 기반 SW의 등장(구자환 교수님)]
*'''MLlib:''' [[회귀]], [[SVM]], [[의사 결정 나무]], [[랜덤 포레스트]] 등 [[머신러닝]] 라이브러리 제공
*'''GraphX:''' 페이지 랭크, 레이블 전파, 삼각 계수 등 그래프 알고리즘 지원
*'''Core:''' 분산 처리, 스케줄링, API 인터페이스 지원
*'''작업 처리 레이어:''' 스파크만으로 처리할 수도 있고, 하둡 Yarn, Mesos 등과 연계 가능
 
==RDD==
;Resilient Distribute Dataset
 
*스파크의 기본 추상화 객체
*'''특징'''
**불변성(immutable): 읽기 전용
**복원성(resilient): 장애 내성
**분산성(distributed): 노드 한 개 이상에 저장된 데이터셋
 
== 스파크 클러스터링 ==
대부분 [[YARN|Hadoop YARN]]을 사용하지만 다양한 클러스터 시스템과 연동 가능하다.
* Apache Hadoop YARN
* Kubernetes
* Apache Mesos
* Spark Standalone
 
==참조 문헌==
 
*[https://www.youtube.com/watch?v=O35dLfyklm0 빅데이터 051 인메모리 데이터 처리 기반 SW의 등장(구자환 교수님)]
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 IT위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소 편집 도움말 (새 창에서 열림)