• 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의 기능을 초기화하는데 사용

    '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