반응형
스파크의 컴포넌트 구성요소
- 아래의 다양한 스파크 컴포넌트들은 여러기능이 집약되어 통합 플랫폼으로 발전됨.
- 컴포넌트 구성도
-
- 스파크 코어
- 스파크 SQL
- 스파크 스트리밍
- 스파크 GraphX
- 스파크 MLlib
-
그럼 스파크 코어에 대해서 알아보자.
- 스파크 Job과 다른 스파크 컴포넌트에 필요한 기본 기능을 제공함.
- 코어에서 가장 중요한 개념.
- RDD(Resilient Distributed Dataset)
- 분산 데이터 컬렉션(or 데이터셋)을 추상화한 객체
- 데이터셋에 적용할 수 있는 연산 및 변환 메소드를 함께 제공함.
- 다시말해서,스파크 API 의 핵심 요소
- 주요 특징
- 복원성
- 노드에 장애가 발생하더라도, 데이터셋을 재구성할 수 있음.
- RDD(Resilient Distributed Dataset)
- 특징
- 다양한 파일시스템에 접근 가능함
- HDFS
- GlusterFS
- Amazon S3
- 기타 등등
- 공유변수 / 누적변수를 사용해 컴퓨팅 노드간에 정보를 공유할 수 있음.
- 네트워킹
- 보안
- 스케줄링 및 데이터 셔플링
- 기타 등등 기본기능이 존재함.
- 다양한 파일시스템에 접근 가능함
그럼 스파크 SQL 에 대해서 알아보자.
- 스파크의 하이브 SQL(HiveQL)이 지원하는 SQL을 사용해 대규모 분산 정형 데이터를 다룰 수 있는 기능을 제공함.
- 정형 데이터의 처리를 단순화하고 성능을 크게 개선함.
- 스파크 v1.3
- DataFrame
- 스파크 v1.6
- DataSet
- 스파크 v1.3
- 정형 데이터의 처리를 단순화하고 성능을 크게 개선함.
- 특징
- 스파크에서 가장 중요한 컴포넌트 중 하나.
- 다양한 정형 데이터를 읽고 쓰는데 사용됨.
- JSON(JavaScript Object Notation)
- Parquet 파일
- 데이터 / 스키마를 함께 저장할 수 있는 파일 포맷
- 관계형 데이터베이스 테이블
- 하이브 테이블
- 기타등등
- DataFrame / DataSet 에 적용된 연산을 일정 시점에 RDD 연산으로 변환해 일반 스파크 Job 으로 실행함.
- 카탈리스트(Catalyst)라는 쿼리 최적화 프레임워크를 제공함.
- 사용자가 직접 정의한 최적화 규칙을 적용해 프레임워크를 확장할 수 도 있다고 함.
- BI(Business Intelligence)도구같은 외부 시스템과 스파크를 연동할 수 있는 Apache Thrift 서버도 제공함.
- 외부시스템은 기존 JDBC / ODBC 프로토콜을 이용해 스파크 SQL쿼리를 실행할 수 있음.
그럼, 스파크 스트리밍에 대해서 알아보자.
- 다양한 데이터 소스에서 유입되는 실시간 스트리밍 데이터를 처리하는 프레임워크
- 지원하는 스트리밍 소스
- HDFS
- Apache Kafka
- Apache Flume
- ZeroMQ
- 기타, 커스텀 데이터 소스도 정의할 수 있다고 함.
- 지원하는 스트리밍 소스
- 특징
- 장애가 발생하면 연산결과를 자동으로 복구가능함.
- 이산 스트림(Discretized Stream, DStream) 방식으로 스트리밍 데이터를 표현함.
- 스파크 스트리밍 / 다른 스파크 컴포넌트를 단일 프로그램에서 사용해 실시간 처리 연산과 머신러닝 작업, SQL 연산, 그래프 연산등을 통합할 수 있다고 함.
- 특히 스파크 2.0에서는 아래와 같이 스트리밍 프로그램을 구현할 수 있다고 함.
- 정형 스트리밍 API를 새롭게 도입해 마치 일관 처리 프로그램을 구현하는 것처럼...
그럼, 스파크 GraphX 에 대해서 알아보자.
- 그래프 RDD(EdgeRDD / VertexRDD) 형태의 그래프 구조를 만들 수 있는 다양한 기능을 제공함.
- 그래프(Graph)란?
- 정점과 두 정점을 잇는 간선으로 구성된 데이터 구조를 말함.
- 그래프(Graph)란?
- 특징
- 그래프 이론에서 가장 중요한 알고리즘이 구현되어 있음.
- 페이지랭크(page rank)
- 연결요소(connected components)
- 최단 경로(shortest path) 탐색
- SVD++(Singular Value Decomposition++)
- 기타 등등
- 지라프(Giraph)에 구현된 대규모 그래프 처리 및 메시지 전달 API인 프리겔(Pregel)도 동일하게 제공함.
- 지라프(Giraph) 란?
- 하둡에서 그래프 알고리즘을 실행할 수 있도록 지원하는 Apache 프로젝트
- 참고페이지
- Pregel 과 GraphX 에 대한 참고페이지
- 그래프 이론에서 가장 중요한 알고리즘이 구현되어 있음.
그럼, 스파크 MLlib에 대해서 알아보자.
- UC버클리의 MLbase 프로젝트에서 개발한 머신 러닝 알고리즘 라이브러리.
- 스파크 MLlib 를 사용해 RDD or DataFrame 의 데이터셋을 변환하는 머신 러닝 모델을 구현할 수 있음.
- 스파크 MLlib 는 머하웃(Mahout)이 지원하는 머신러닝 알고리즘의 대부분을 구현함.
- 참고로, 스파크 MLlib 이전에는 하둡에서 분산 머신 알고리즘을 구현한 오픈소스 프로젝트로 아파치머하웃(Apache Mahout) 이 존재했음.
- 아파치 머하웃이란?
- 수학자, 통계 학자 및 데이터 과학자가 자신의 알고리즘을 신속하게 구현할 수 있도록 설계된 분산 선형 대수 프레임 워크.
- 참고페이지
- 참고로, 스파크 MLlib 이전에는 하둡에서 분산 머신 알고리즘을 구현한 오픈소스 프로젝트로 아파치머하웃(Apache Mahout) 이 존재했음.
- 특징
- 아래와 같은 다양한 머신러닝 알고리즘을 지원함.
- 로지스틱 회귀(logistic regression)
- 나이브 베이즈 분류(naive bayes classification)
- 서포트 벡터 머신(support vector machine)
- 의사 결정 트리(decision tree)
- 랜덤 포레스트(random forests)
- 선형회귀(linear regression)
- k-평균 군집화(k-means clustering)
- 기타 등등.
- 아래와 같은 다양한 머신러닝 알고리즘을 지원함.
결론
- 다양한 스파크 컴포넌트들은 여러기능이 집약되어 통합 플랫폼으로 발전됨.
- 컴포넌트 구성요소는 아래와 같음.
- 스파크 코어
- 스파크 SQL
- 스파크 스트리밍
- 스파크 GraphX
- 스파크 MLlib
- 컴포넌트 구성요소는 아래와 같음.
- 오늘도 스파크 컴포넌트에 대한 지식 획득 완료! 감사합니다. ^^
- 오늘의 명언 한마디
- 나는 성공으로 가는 길 위에서 수없이 많은 역경을 경험하는 것이 창업자정신을 추구하는 과정 속에 내재되어 있음을 깨달았다.
- 이런 사실은 속담에 나오는 "부엌의 열기"를 떠올리게 한다.
- 즉, "부엌의 열기를 견딜 수 없으면, 밖으로 나가라"
- 우리 속담은, "절이 싫으면 중이 떠나라"
- 즉, "부엌의 열기를 견딜 수 없으면, 밖으로 나가라"
- 다니엘 아이젠버그지음, "하버드 창업가 바이블" 중에서...
- 오늘의 영어 한마디
- I am pleased with the way he teaches me.
- 나는 만족해 / 방법에 / 그가 가르치는 /나를
- 설명
- be pleased 에 대해서 알아보면,
- "be pleased with (대상)" 는 (대상)에 기뻐하다.
- for + 목적격 대명사가 나오고, 그 다음에 무엇때문에 기쁜지 이유가 보충됨
- "be pleased for (원인)" 는 (원인)으로 인해서 기뻐하다.
- with + 기쁘게 만드는 대상(사물이나 사람)이 수반됨
- "be pleased with (대상)" 는 (대상)에 기뻐하다.
- be pleased 에 대해서 알아보면,
- I am pleased with the way he teaches me.
- 오늘의 민법 한마디
- 제2편 물권 / 제1창 총칙
- 제186조(부동산물권변동의 효력)
- 부동산에 관한 법률행위로 인한 물권의 득실변경은 등기하여야 그 효력이 있다.
- 마인드 체인지) 민법을 활용하여 영어를 공부하기 도전!
- Article 186(Effect of Change in Real Property Rights)
- The change in real rights by legal act about real property requires recording to take effect.
- 제186조(부동산물권변동의 효력)
- 제2편 물권 / 제1창 총칙
- 오늘의 재무제표 공부 한마디
- 선수수익
- 수익으로 발생하지 않았지만, 미리 지급받은 금전
- 선수수익
- 나의 목표 및 다짐을 항상 내곁에 두기.
- 목표
- 나의 강점을 바탕으로 나의 일을 잘해냄으로써 타인과 사회를 아릅답게 만든다.
- 현재 내가 가진 능력으로 누군가에 도움이 될 수 있을까? 에 대해서 항상 생각하기
- 목표를 이루기 위한 실천방안
- 꾸준한 블로깅/기록법/독서법으로 넘버원이 아닌 온리원이 되보자.
- 천사불여일행(千思不如一行)을 항상생각하며 체화 및 각인시키자.
- "천번 생각하는것보다 한번 행동하는 것이 더 중요하다."
- 기기일약 불능십보(騏驥一躍 不能十步) / 노마십가 공재불사(駑馬十駕 功在不舍)
- 천리마도 한번에 열걸음을 뛸 수 없고, 느리고 둔한말이라도 열흘이면 하룻길을 간다.
- 목표
728x90
300x250
'좋아하는 것_매직IT > 16.Spark' 카테고리의 다른 글
2.아파치 스파크(Apache Spark)란 무엇일까? (0) | 2021.02.17 |
---|