일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- AWS Crawler
- 스파크
- 데이터 수집
- freenom
- Catalyst Optimizer
- 문맥교환
- 프로그래머스 큰 수 만들기
- 데이터엔지니어링
- 프로그래머스
- Databricks
- Spark
- 하둡
- 데이터베이스복사
- 카프카
- 프로그래머스힙
- 실행엔진
- kafka 설치
- 하둡에코시스템
- 런타임데이터영역
- 데이터파이프라인
- 지연연산
- 하둡1.0
- ORACLE문법
- 하둡2.0
- Spark 최적화
- 빌드도구
- EMR 구조
- ORACLE MSSQL차이
- lazy evaluation
- 서버간 복사
- Today
- Total
띵유로그
[SPARK] SPARK - ORIENTATION 본문
Spark 는 하둡 에코시스템 중 분산데이터 처리기에 해당한다.
분산 데이터 처리기는 Spark, Tez, MapReduce등 많은 것이 있지만, Spark만의 장점이 무엇인지 알아보자.
1. 다양한 언어 지원 & 쉬운 프로그래밍
Spark는 Scala, java, python, R등 다양한 언어를 지원한다. (Spark내부적으로는 Scala로 동작한다.)
live stream 데이터도 처리할 수 있다.
또 대화형작업이나 기계학습과 같은 반복적인 데이터 플로우를 쉽게 프로그래밍할 수 있다.
* 참고로 python으로 작성하면 저수준 API인 RDD작성시 성능저하가 발생할 수 있다.
JVM언어로 변환하는 과정에서 비용이 많이 발생하기 때문.. 고수준 API(Dataset, DataFrame등 )만사용하면 성능면에서는 큰 차이가 없다.
2. 확장성
Spark Driver는 쿼리를 최적화 하는 역할만 하고 실제 task는 각 Excutor에게 위임한다.
데이터가 지속적으로 증가하는 프로젝트라면 필요시 excutor 서버만 하나씩 추가하면 관리하기 쉽다.(scale out)
* 작업량이 많을 때는 Executor를 늘리는 것이 좋지만 그렇지 않을 때에는 연산시간보다 통신에의한 지연 시간이 많을 수 있으니 적당한 서버를 두는것이 좋을 것이다.
* 위 그림에서 Slot은 병행처리 단위이다
3. 디스크 IO 없앰
MapReduce는 매번 디스크 IO가 발생한다.
스파크는 메모리 기반이기때문에 별도로 지정하지 않는 이상 디스크IO가 발생하지 않는다.
이는 처리 속도가 빠름을 의미한다.
'DataEngineering > SPARK' 카테고리의 다른 글
[스파크] RDD - Double RDD 전용 함수 (0) | 2021.03.08 |
---|---|
[스파크]RDD연산자2(sample, take, takeSample) (0) | 2021.03.08 |
[스파크] RDD연산자 (0) | 2021.03.08 |
[스파크] RDD 개요 (0) | 2021.03.08 |
[SPARK] SPARK DATAFRAME이란 - RDD와 어떻게 다른가? (0) | 2020.12.06 |