본문 바로가기
스터디/Hadoop

[Spark] Spark 개념

by zoodi 2020. 7. 2.
728x90

참고 : http://www.itworld.co.kr/insight/147556

스파크란?
스파크는 빅데이터 워크로드에 주로 사용되는 분산처리 시스템이며 하둡과 마찬가지로 오픈소스 입니다. 특징은 빠른 성능을 위해 인 메모리 캐싱과 최적화 된 실행을 사용하고 일반 배치처리, 스트리밍 분석, 머신러닝, 그래프 데이터 베이스 및 임시 쿼리를 지원
하둡없이도 클라우드 기반 데이터 플랫폼과 융합하며 원래는 하둡을 이용한 정보활용을 위한 데이터 프로세싱 툴입니다. 기존의 하둡을 통해 끌어오는 데이터들은 시간 소요가 크기 때문에 실시간으로 분석해야 하는 업무에서는 어려운 부분이 있어 새로이 개발 되었구요. 함수형 프로그래밍이 가능한 언어 스칼라(Scala)를 사용해 간단한 코드로 인터렉티브 쉘(Interactive shell)를 사용할 수 있답니다.

-RDD
Resilient Distributed Dataset , 탄력 분산 데이터셋
분산되어 존재하는 데이터들의 모임, 즉 클러스터에 분배되어 있는 데이터들을
하나로 관리하는 개념
스파크의 모든 데이터 타입들은 RDD를 기반으로 만들어져 있고, 데이터끼리의 연산들은 RDD의 연산으로 이루어져 있습니다.
RDD는 HDFS의 파일과 같이 변경이 불가능한, 즉 쓰기가 불가능한 데이터이다.

-RDD연산
1) Transformation 
트랜스포메이션은 RDD끼리의 연산입니다.
이전 포스팅에서 사용했던 filter메소드 역시 트랜스포메이션의 일종입니다.
트랜스포메이션은 호출이 될 때 바로 수행되지는 않습니다.
이를 스파크에서는 Lazy Execution 또는 Lazy Evaluation이라고 하는데,
액션을 취할때까지 기다렸다가 모든 트랜스포메이션 작업을 취합해 가장 효율적인 계산을 수행하게 됩니다.
위에서 언급했듯이 RDD는 쓰기가 불가능한 데이터셋입니다.
따라서 트랜스포메이션이 행해지면, 기존 RDD에 수행되는것이 아니라,
새로운 RDD를 만들어내고 그 새로운 RDD에 수행 결과가 적용되게 됩니다.

2) Action
액션은 트랜스포메이션들이 한번 이상 행해지고 나서 실제 Evaluation이 이뤄지는 작업입니다. first메소드가 액션의 일종입니다.

-자주쓰는 RDD연산
map : map은 각 원소들에 무언가를 수행하고 싶을 때 사용하는 연산
flatmap : flatmap은 중첩된 리스트들의 원소를 하나의 리스트로 flatten해서 리턴하는 연산
filter : filter는 말그대로 원소들을 조건으로 필터링하는 연산

 

728x90

'스터디 > Hadoop' 카테고리의 다른 글

[Hive] Hive 개념  (0) 2020.07.04
[Spark] OnlineRetail ItemCount  (0) 2020.07.04
[Spark] Scala 기초 문법  (0) 2020.07.04
[Hadoop] Hadoop 개념  (0) 2020.07.02

댓글