PLOD

[Spark] Apache - Spark 본문

computer science/Cloud computing

[Spark] Apache - Spark

훌룽이 2022. 12. 15. 10:28

 

*Spark :  빅데이터 처리를 위한 오픈 소스 분산 처리 플랫폼 , Resilient Distribute Dataset(RDD)

Spark는 효율적이고 범용적인 프로그래밍 언어를 대화형으로 사용해서 클러스터의 대규모 데이터 세트(ex. interactive query , streaming processing)를 처리할 수 있는 최초의 시스템이다. Spark는 다른 processing type들을 결합하는 것을 쉽고 싸게 할  수 있다.

 

* spark의 기능

1) cluster 병렬화 기능을 통해 system programming 구별 기능

 

2) 네트워크 통신 기능

 

3)  fault tolerance 기능

 

*Spark Construct

 

 

- Spark Core(Spark engine) : Spark의 기본 기능(task scheduling , memory management, fault recovery, interacting storage system)들을 보유. Spark의 주요 프로그래밍 추상화인 RDD를 정의하는 API 

 

-Spark SQL :  구조화된 작업을 위 패키지(ex. HIVE) , SQL 언어와 비슷한 HiveQL을 사용한 Apache Hive 변형을 통해 data querying 가능

 


(RDD 포함 Spark 구성 요소)

 

 

 

- Spark Streaming :  실시간 데이터 스트리밍 처리를 가능하게 하는 구성요소

 

- Mllib : Machine Learning 기능을 지원하는 라이브러리 

 

- GraphX :  그래프 조작과 그래프 병렬 처리를 지원하는 라이브러리

 

 

* RDD : 병렬로 조작할 수 있는 많은 컴퓨팅 노드에 분산된 항목의 모음, spark의 원시 데이터들의 기록( Immutable, partition)

 

 

- RDD caching 기능을 통해 disk에서 다시한번 처리되므로   Fault tolerance 하다.

 

- Spark RDD는 Lazily evaluate하기 때문에 RDD를 여러번 실행하여 caching이 여러번 되어 persistance 하다. (result.persis() 함수로 1번의 caching으로 persistance를 유지 가능) 
+  손실된 partition 재 처리로 persistance 유지

 

 

* Lazy Evaluation 

Spark의 특징, 데이터를 로드하는 것과 변환이 게으르다 . spark는 RDD 변환을 호출할 때, 연산은 즉시 수행되지 않는다. 대신 spark는 내부적으로 메타데이터를 기록하여 요청을 나타낸다.(각 RDD는 변환을 통해 축적된 데이터를 계산하는 방법에 대한 지침으로 구성되어 있다)

 

Comments