Spark 정리
통합 컴퓨팅 엔진이며, 클러스터 환경에서 데이터를 병렬로 처리하는 라이브러리 집합. 병렬 처리 오픈소스 엔진.
지원언어
- Python
- Java
- SQL
- Scala
- R
스파크는 다음과 같은 다양한 응용 프로그램을 지원한다.
- 추출-변환-로드(ETL, Extract-Transform-Load) 연산
- 예측 분석 및 머신러닝
- SQL 쿼리 및 시각화와 같은 데이터 액세스 작업
- 텍스트 마이닝 및 텍스트 처리
- 실시간 이벤트 처리
- 그래프 응용 프로그램
- 패터 인식
- 추천 엔진
1. Spark 설명
-
스파크는 ‘빅데이터 어플리케이션 개발에 필요한 통합 플랫폼을 제공하자’는 핵심 폭표를 가지고 있음.
-
간단한 데이터 읽기부터 SQL 처리, 머신러닝 그리고 스트림 처리에 이르기까지 다양한 데이터 분석 작업을 같은 연산 엔진과 일관성 있는 API로 수행할 수 있도록 설계.
-
스파크의 개발 사상은 주피터 노트북의 대화형 분석 도구, 운영용 어플리케이션 개발 등 과 같이 다양한 처리 유형과 라이브러리를 결합해 수행.
-
조합형 API를 제공하므로 작은 코드 조각이나 기존 라이브러리를 사용해 애플리케이션 만들기 용이, 직접 스파크 기반 라이브러리 제작 가능. (ex. SQL 데이터 Read, ML 라이브러리로 머신러닝 모델 2가지 프로세스를 한번에 수행 가능)
-
스파크의 역할은 저장소 시스템의 데이터를 연산하는 역할만 수행. 저장소 역할은 수행하지 않음. 다양한 저장소 연결 가능(Hadoop, Azure Storage, S3, Cassandra, Kafka 등)
-
스파크 코어 엔진 자체는 최초 공개 후 큰 변화가 없었지만 라이브러리의 경우 많은 기능을 제공하기 위해 발전(스파크 SQL, MLlib, 스파크 스트리밍, GraphX, 다양한 저장소 시스템 커넥터 등 제공)
2. Spark 역사
- 스파크의 첫 번째 버전은 배치 어플리케이션만 지원.
- 얼마 지나지 않아 대화형 데이터 분석이나 ad-hoc-query 같은 강력한 기능 제공(AMPLap 은 스칼라 인터프리터를 단순히 스파크에 접목하여 대화형 시스템 제공)
- 샤크 개발(2011, 대화형으로 SQL을 실행)
- AMPLap 의 여러 그룹이 MLlib, 스파크 스트리밍, GraphX 만들기 시작.
- 2013년 30개 이상의 UC 버클리 대학교 외부 조직에 100명 이상의 기여자가 있는 프로젝트로 성장
- AMPLap 의 아파치 재단 기증, AMPLap 은 데이터브릭스 설립
3. Spark 설치
-
로컬 환경에 스파크 내려받기
http://spark.apache.org/downloads.html
- Hadoop 버전 선택
- Spark 버전 선택
- 다운로드
- 압축해제 후 spark-3.2.1-bin-hadoop3.2/bin 에 pyspark 실행
- jupyter notebook 에서 pyspark 구동
! pip install pyspark
4. Spark 실행 설명
스파크 실행 형식 | 설명 | 리눅스/Mac OS | 윈도우 |
---|---|---|---|
기본 | 스파크에서 스칼라를 사용할 때 실행 | spark-shell | spark-shell.cmd spark-shell2.cmd | </tr>
PySpark | 스파크에서 파이썬을 사용할 때 실행 | pyspark | pyspark.cmd, pyspark2.cmd |
SparkR | 스파크에서 R을 사용할 때 실행 | sparkR | sparkR.cmd, sparkR2.cmd |
SparkSQL | 스파크에서 SQL을 사용할 때 실행 | spark-sql | - |
스파크 애플리케이션 | 스파크 애플리케이션을 클러스터 환경에서 구동할 때 사용 | spark-sumit | spark-submit.cmd, spark-submit2.cmd |