• spark sql

    2017. 10. 18. 00:08

    by. 위지원

    아주 좋아보이는 싸이트를 찾아서 이 야밤에 공부를 해본다 https://www.tutorialspoint.com/spark_sql/spark_sql_quick_guide.htm



    스파크는..

    hadoop은 spark를 구현하는 방법중 하나이며 spark는 MapReduce모델을 확장하여 대화형 쿼리 및 스트림 처리를 비롯한 다양한 유형의 계산에 효율적으로 사용,이전 글[링크]에서 알아봤듯이  in memory cluster computing방식으로 속도를 빠르게 함


    http://www.itworld.co.kr/news/97026를 보고 spark와 hadoop에 대해서 더 알아봤다.


    1.하둡과 스파크는 다른 일을 한다.


    하둡은 근본적으로 분산 데이터 인프라스트럭처로 범용화 된 서버의 클러스트와 함께 다양한 노드에서 대량의 데이터 컬렉션 배포

    스파크는 분산된 데이터 컬렉션에서 실행하는 데이터 처리 툴,하둡을 이용한 데이터 프로세싱 툴


    스파크의 특징

    속도 : 최대 메모리에서 100배 디스크에서 10배의 속도로 실행

    여러 언어 지원 : java,scala,python언어의 api제공

    고급 분석 : sql쿼리,스트리밍데이터,기계학습 및 그래프 알고리즘 지원


    스파크 배치

    3가지가 있다.


    1.독립 실행형 (Standalone)


    spark

    -------

    hdfs


    2.hadoop yarn(hadoop 2.0)


    spark

    ------

    yarn/mesos

    ------

    hdfs


    3.MapResuce(SIMR)


    -mapreduce-

    l    spark     l

    ---------------

    hdfs


    스파크 구성요소

    apache sparkcore [spark sql,spark streaming,machine learning,graphX]


    spark core : 기본 실행 엔진으로 외부 스토리지 시스템에서 인 메모리 컴퓨팅 및 참조 데이터 세트를 제공

    sql : schemaRdd라는 새로운 데이터 추상화를 도입하여 구조화 된 데이터와 반 구조화 된 데이터 지원

    streaming : core의 빠른 스케쥴링 기능을 활용하여 스트리밍 분석을 수행 mini batch로 데이터를 수집하고 이 데이터에 대해 rdd변환 수행

    MLlib : apache mahout보다 9배나 빠름

    graphX: 그래프 처리 프레임 워크



    RDD : 스파크의 기본적인 데이터 구조 객체의 불변 분산 컬렉션

    -각 데이터 셋은 다른 노드에서 계산 될 수 있는 논리 파티션

    -RDD는 사용자 정의 클래스를 포함 모든 유형의 python.java,scala 객체 포함

    -공식적으로는 읽기전용 파티션 레코드 모음


    아래의 두가지 방법으로 RDD를 만들 수 있음

    -기존 컬렉션을 병렬화

    -공유 파일 시스템,HDFS,HBase,Hadoop Input Format을 제공하는 모든 데이터 소스와 같은 외부 스토리지 시스템에서 데이터세트를 참조




    spark는 mapreduce를 빠르고 효율적으로 하기위해 사용

    -mapreduce는 복제,직렬화,디스크I/o때문에 데이터 공유가 느림

    -HDFS read/write에 90프로이상의 시간을 소비함;


    그래서 spark RDD를 사용

    -Resilient Distribured Datasets  탄력있는 분산 데이터셋

    -메모리 내 처리 계산을 지원


    sparksql의 특징


    -통합 : spark에서 구조화 된 데이터를 python,java,scala로 통합된 api로 RDD로 쿼리할 수 있음 .. 그니깐 음 sql쿼리를 쉽게할 수 있음!

    -다양한 소스에서 데이터를 로드하고 쿼리할 수 있음

    -JDBC,ODBC를 통해 연결

    -확장성


    spark sql 아키텍처


    3가지 레이어로 구성되어 있음


    1.언어 api : 다른 언어 와 spark sql과 호환

    2.schema rdd : 스키마 RDD를 임시 테이블로 사용할 수 있으며 이 스키마 RDD를 dataframe이라고 부를 수 있음

    3.data sources : parquet,json,hive,cassandra


    sqlcontext class로 spqark sql의 기능을 초기화하는데 사용

    profile
    위지원

    데이터 엔지니어로 근무 중에 있으며 데이터와 관련된 일을 모두 좋아합니다!. 특히 ETL 부분에 관심이 가장 크며 데이터를 빛이나게 가공하는 일을 좋아한답니다 ✨

    '2017년 > Spark' 카테고리의 다른 글

    hadoop 설치  (0) 2017.10.19
    spark 예제 돌려보기  (0) 2017.10.18
    HDFS와 YARN  (0) 2017.10.11
    스칼라를 빠르게 공부해보자  (0) 2017.09.20
    spakrR과 R의 메모리  (0) 2017.09.12