아파치 스파크란 클러스터 환경에서 데이터를 병렬로 처리하는 라이브러리 집합이다.
병렬 처리 오픈 소스 엔진이다.
SQL 뿐만 아니라 스트리밍, 머신 러닝 라이브러리 까지 제공한다.
빅데이터 처리를 쉽게 할 수 있고 엄청난 규모의 클러스터로 확장 할 수 있다.
아파치 스파크의 철학
- 컴퓨팅 엔진
스파크는 데이터를 연산하는 역할만 수행 할 뿐 영구 저장소 역할은 하지 않는다.
대신 하둡, 카산드라, 등의 저장소를 지원하고 메시지 전달 서비스인 카프카를 지원한다.
스파크는 내부에 데이터를 오랜 시간 저장하지 않고 ,
데이터 저장 위치에 상관없이 처리에 집중하도록 만들어졌다.
스파크는 연산 기능에 초점을 맞추면서 기존 하둡같은 빅데이터 플랫폼과 차별화를 둔다.
하둡은 hdfs 와 맵리듀스를 가지고 있고 서로 밀접하게 연관되어서 따로 사용하기 어렵지만
스파크는 다른 저장소들과도 호환해서 사용이 가능하다.
스파크의 등장 배경
프로세서의 성능 향상이 2005년 경에 멈춰버렸다.
단일 프로세서의 성능을 향상시키는 대신 모든 코어가 병렬적으로 동작하는 병렬 CPU 코어를 추가하는 방향으로
선회되었다.
이런 현상이 어플리케이션의 성능 향상을 위해 병렬 처리가 필요하며 스파크 같은 프로그래밍 모델의 세상이 올것을 의미했다.
또한, 데이터 저장과 수집 기술을 계속 발전해서
대량의 데이터를 저렴하게 저장할수있게 되었다.
결과적으로 데이터 수집 비용은 저렴해졌지만, 데이터는 클러스터에서 처리해야 할 만큼 거대해져버렸다.
전통적인 프로그래밍 모델로는 한계가 있고 따라서 이런 문제를 해결하기 위해 아파치 스파크가 나왔다.
스파크 실행하기
스파크는 스칼라로 구현되어 자바 가상 머신으로 동작한다.
스파크를 실행하려면 자바를 설치해야 한다.
스파크를 시작하는 두가지 방법을 소개한다.
로컬에서 실행하거나, 클러스터에서 실행하거나
- 로컬에서 실행하기
우선 자바가 설치되어있어야 한다.
스파크 공식 홈페이지에서 다운로드 받자 스파크 2.2버전 이상으로 받는다.
- 하둡 클러스터용 스파크 내려받기
스파크는 하둡 같은 분산 파일 시스템이 없는 로컬 환경에서도 실행 할 수 있지만,
스파크에서 하둡 클러스터로 접속하고 싶다면
다운로드 페이지에서 하둡 버전에 맞는 패키지 유형을 선택해 받자.
- 스파크 대화형 콘솔 실행하기
스칼라 콘솔 실행하기
명령 실행 후 spark 를 치면 SparkSession 객체가 출력된다.
'데이터처리 > spark' 카테고리의 다른 글
[spark definitive guide] 스파크 기능 둘러보기 (0) | 2021.02.03 |
---|---|
[spark definitive guide] - 스파크 간단히 살펴보기 (0) | 2021.02.02 |
Spark - RDD 생성 방법과 동작 과정 (0) | 2020.06.04 |
[Trouble Shooting] spark- Java 버전 dependency (0) | 2020.05.14 |
[reference] spark - RDD programming (0) | 2020.05.11 |