일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- MapReduce
- SlackWebhookOperator
- LDAP
- java
- 빅데이터
- airflow
- docker
- Lambda architecture
- Kafka
- HIVE
- Namenode
- 람다 아키텍처
- Service
- python
- HDP
- Windows
- yarn
- 정규표현식
- jupyter
- slack app
- re
- HBase
- hadoop
- HDFS
- Example DAG
- NoSQL
- Scala
- slack
- execution_date
- ambari
Archives
- Today
- Total
IT 삽질기
Spark란 본문
Spark란?
- 범용의 분산 클러스터 컴퓨팅 프레임워크
- 메모리 기반의 대용량 데이터 고속 처리 엔진
- 하둡과 밀접하게 통합되어 YARN을 기반으로 실행 할 수 있으며 HDFS 기반의 저장소 지원
- 데이터가 메모리에 저장되어 있을 때 하둡보다 약 100배 빠르며 디스크에 저장되어 있을 때 약 10배 빠른 속도
- 자바, 파이썬, 스칼라, R 등을 기반으로 동작
- 단일 시스템 내에서 데이터 batch/Stream처리, SQL 및 Machine Leraning, Graph processing 지원
Spark는 메모리를 기반으로 데이터를 처리하는데 그와 반대로 Hadoop는 디스크에 기반하여 데이터를 처리한다고 했다.
Hadoop에서는 데이터를 어떻게 처리하는지, 디스크 기반의 데이터 처리는 어떤 단점이 있는지 간단하게 알아보자.
Hadoop
- 디스크 기반의 데이터 처리
- 데이터 처리 시간 외 read/write에 추가 시간 소요
- 반복 쿼리 작업 수행 시 중간 결과물도 디스크에 read/write가 반복되어 속도가 느림
- 동일 Data에 대해 작업할 때도 매번 Read 연산이 필요
그렇다면 Hadoop는 항상 좋지 않고 Spark는 항상 좋은 것일까 ??
Spark도 역시 단점이 존재한다.
Spark는 메모리 기반으로 동작하기 때문에 메모리 용량을 초과하는 데이터를 한번에 처리하는 경우에는 데이터를 메모리에 올리고 내리는 작업을 반복하게 되는데 이 과정에서 속도가 느려질 수 있다.
다음은 Spark의 기본적인 구조에 대해서 알아보도록 하자.
Spark Core
- 메인 컴포넌트로 작업 스케쥴링, 메로리 관리, 장애 복구와 같은 기본적인 기능을 제공
- RDD, Dataset, DataFrame을 이용한 스파크 연산을 처리하는 기능
Spark - RDD(Resilient Distributed Datasets)
- Spark 내 저장된 변경이 불가능한 데이터
- 변경을 위해서는 새로운 데이터셋 필요
- 외부로 부터 데이터를 로딩하거나 코드에서 생성된 데이터를 저장하여 생성
- 어떻게 만들어지는지 lineage에 기록되며 이를 기반으로 동일한 RDD를 만들 수 있음 fault-tolerant문제 해결
참고자료
https://www.slideshare.net/KangDognhyun/apache-spark-70360736
https://www.slideshare.net/sanghoonlee982/spark-overview-20141106?next_slideshow=1
Comments