본문 바로가기

좋아하는 것_매직IT/16.Spark

1.Spark, 스파크를 구성하는 컴포넌트에 대해서 알아보자.

반응형

스파크의 컴포넌트 구성요소

  • 아래의 다양한 스파크 컴포넌트들은 여러기능이 집약되어 통합 플랫폼으로 발전됨.
  • 컴포넌트 구성도
      • 스파크 코어
      • 스파크 SQL
      • 스파크 스트리밍
      • 스파크 GraphX
      • 스파크 MLlib

그럼 스파크 코어에 대해서 알아보자.

  • 스파크 Job과 다른 스파크 컴포넌트에 필요한 기본 기능을 제공함.
  • 코어에서 가장 중요한 개념.
    • RDD(Resilient Distributed Dataset)
      • 분산 데이터 컬렉션(or 데이터셋)을 추상화한 객체
      • 데이터셋에 적용할 수 있는 연산 및 변환 메소드를 함께 제공함.
        • 다시말해서,스파크 API 의 핵심 요소
      • 주요 특징
        • 복원성
        • 노드에 장애가 발생하더라도, 데이터셋을 재구성할 수 있음.
  • 특징
    • 다양한 파일시스템에 접근 가능함
      • HDFS
      • GlusterFS
      • Amazon S3 
      • 기타 등등
    • 공유변수 / 누적변수를 사용해 컴퓨팅 노드간에 정보를 공유할 수 있음.
    • 네트워킹
    • 보안
    • 스케줄링 및 데이터 셔플링
    • 기타 등등 기본기능이 존재함.

그럼 스파크 SQL 에 대해서 알아보자.

  • 스파크의 하이브 SQL(HiveQL)이 지원하는 SQL을 사용해 대규모 분산 정형 데이터를 다룰 수 있는 기능을 제공함.
    • 정형 데이터의 처리를 단순화하고 성능을 크게 개선함.
      • 스파크 v1.3
        • DataFrame
      • 스파크 v1.6
        • DataSet
  • 특징
    • 스파크에서 가장 중요한 컴포넌트 중 하나.
    • 다양한 정형 데이터를 읽고 쓰는데 사용됨.
      • JSON(JavaScript Object Notation)
      • Parquet 파일
        • 데이터 / 스키마를 함께 저장할 수 있는 파일 포맷
      • 관계형 데이터베이스 테이블
      • 하이브 테이블 
      • 기타등등
    • DataFrame / DataSet 에 적용된 연산을 일정 시점에 RDD 연산으로 변환해 일반 스파크 Job 으로 실행함.
    • 카탈리스트(Catalyst)라는 쿼리 최적화 프레임워크를 제공함.
      • 사용자가 직접 정의한 최적화 규칙을 적용해 프레임워크를 확장할 수 도 있다고 함.
    • BI(Business Intelligence)도구같은 외부 시스템과 스파크를 연동할 수 있는 Apache Thrift 서버도 제공함.
      • 외부시스템은 기존 JDBC / ODBC 프로토콜을 이용해 스파크 SQL쿼리를 실행할 수 있음.

그럼, 스파크 스트리밍에 대해서 알아보자.

  • 다양한 데이터 소스에서 유입되는 실시간 스트리밍 데이터를 처리하는 프레임워크
    • 지원하는 스트리밍 소스
      • HDFS
      • Apache Kafka
      • Apache Flume
      • Twitter
      • ZeroMQ
      • 기타, 커스텀 데이터 소스도 정의할 수 있다고 함.
  • 특징
    • 장애가 발생하면 연산결과를 자동으로 복구가능함.
    • 이산 스트림(Discretized Stream, DStream) 방식으로 스트리밍 데이터를 표현함.
    • 스파크 스트리밍 / 다른 스파크 컴포넌트를 단일 프로그램에서 사용해 실시간 처리 연산과 머신러닝 작업, SQL 연산, 그래프 연산등을 통합할 수 있다고 함.
    • 특히 스파크 2.0에서는 아래와 같이 스트리밍 프로그램을 구현할 수 있다고 함.
      • 정형 스트리밍 API를 새롭게 도입해 마치 일관 처리 프로그램을 구현하는 것처럼...

그럼, 스파크 GraphX 에 대해서 알아보자.

  • 그래프 RDD(EdgeRDD / VertexRDD) 형태의 그래프 구조를 만들 수 있는 다양한 기능을 제공함.
    • 그래프(Graph)란?
      • 정점과 두 정점을 잇는 간선으로 구성된 데이터 구조를 말함.
  • 특징
    • 그래프 이론에서 가장 중요한 알고리즘이 구현되어 있음.
      • 페이지랭크(page rank)
      • 연결요소(connected components)
      • 최단 경로(shortest path) 탐색
      • SVD++(Singular Value Decomposition++)
      • 기타 등등
    • 지라프(Giraph)에 구현된 대규모 그래프 처리 및 메시지 전달 API인 프리겔(Pregel)도 동일하게 제공함.

그럼, 스파크 MLlib에 대해서 알아보자.

  • UC버클리의 MLbase 프로젝트에서 개발한 머신 러닝 알고리즘 라이브러리.
  • 스파크 MLlib 를 사용해 RDD or DataFrame 의 데이터셋을 변환하는 머신 러닝 모델을 구현할 수 있음.
  • 스파크 MLlib 는 머하웃(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 + 기쁘게 만드는 대상(사물이나 사람)이 수반됨 

  • 오늘의 민법 한마디
    • 제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.

  • 오늘의 재무제표 공부 한마디
    • 선수수익
      • 수익으로 발생하지 않았지만, 미리 지급받은 금전

  • 나의 목표 및 다짐을 항상 내곁에 두기.
    • 목표
      • 나의 강점을 바탕으로 나의 일을 잘해냄으로써 타인과 사회를 아릅답게 만든다.
      • 현재 내가 가진 능력으로 누군가에 도움이 될 수 있을까? 에 대해서 항상 생각하기
    • 목표를 이루기 위한 실천방안
      • 꾸준한 블로깅/기록법/독서법으로 넘버원이 아닌 온리원이 되보자.
      • 천사불여일행(千思不如一行)을 항상생각하며 체화 및 각인시키자.
        • "천번 생각하는것보다 한번 행동하는 것이 더 중요하다."
      • 기기일약 불능십보(騏驥一躍 不能十步) / 노마십가 공재불사(駑馬十駕 功在不舍)
        • 천리마도 한번에 열걸음을 뛸 수 없고, 느리고 둔한말이라도 열흘이면 하룻길을 간다.
728x90
300x250