• 맵 리듀스란?

    2017. 7. 8. 20:38

    by. 위지원

    spark는 예전에 간단하게 한번 알아본적이 있다....http://weejw.tistory.com/15 

    이때는 간단한 개요정도만 알아봤는데.. 오늘은 좀 더 깊이 알아보자.


    이전 포스트에서 주요기능이라 했던


    map-reduce와 spark streaming 두가지를 더 공부해보자.

    +2018년 2월 27일 추가 : spakr steaming 공부



    Map-Reduce


    맵 리듀스란?

    -대용량 데이터를 처리하기위한 분산 프로그래밍 모델

    -구글에서 04년 발표한 sw framework[각주:1]

    -기존처리방식인 데이터를 가져오고->처리->저장의 데이터를 가져오는 비용을 줄이기 위해 고안됨

    -데이터가 저장된 곳에서 처리를 할 수 있도록 만듬



    맵과 리듀스?

    각 단계는 입려과 출력으로 key,value쌍 타입,함수 모드 프로그래머가 선택

    -맵 : 흩어져 있는 데이터를 key,value형태로 연관성있게 종류 별로 모음 

    -리듀스 : map작업 후 중복제거 후 원하는 데이터 추출


    -아래에 사진처럼 최초입력 파일은 split후 HDFS에 저장한다. HDFS는 파이시스템으로 나중에 한번 더 포스팅해보자

    -큰 데이터를 한번에 처리할 수 없기에 split(하지만 너무 작아도 오버헤드발생)

    -리듀스 함수로 데이터를 전달하는 것을 셔플링이라고한다.



    +10/19 추가 http://paranwater.tistory.com/417


    MapRduce에서 Computation 최고 단위는 job이다. job이 데이터 로드해서 map연산->셔플->리듀싱 결과를 데이터로 작성한다.

    파티셔너와 콤바이너

    파티셔너 

    -맵 함수의 결과를 각 파티션으로 나누어 저장

    -기준은 key이며 해쉬함수를 key에 적용해 처리하는 것이 일반적

    컴바이너 

    -로컬 리듀서라고 하며 리듀서와 동일하게 사용

    -맵->리듀스 데이터 전달시 네트워크를 이용하는데 이때 전달할 데이터 양을 줄이기 위해 사용





    스파크와 하둡의 맵리듀스의 차이는?



    링크에 있던 내용중 굉장히 재밌는 설명이 있었다.


    '앙트레'를 요리하는 단 하나 요리사는 일정한 '계산'이라고 가정하였을 때

    하둡은 앙트레를 여러 요리사가 조각으로 요리한다. 각 요리사들은 별도의 스토브와 음식선반이 있고

    A요리사가 소스를 요리하면 B요리사는 고기를 요리한다 이과정을 MAP이라고 하고 MAIN 요리사가 전체 요리를

    조합하는걸 REDUCE라 한다


    하둡의경우

    각 요리과정중 스토브에 물건을 두지 않고 특정 과정을 수행할때마다 결과를 선반에 놓는다

    스파크의 경우

    각 요리과정 사이에 스토브에 물건을 둘 수있다.


    그래서 스파크가 더 빠르다.

    또 


    하둡은 조리법이 비논리적이고 이해하기 어려운 언어로 작성된다.

    스파크는 조리법이 아주 멋지게 적혀있다.


    위 링크중 반복적으로 언급된것은


    스파크가 하둡보다 빠르며 사용하기 편하고 그래프처리가 가능하며 

    실시간 스트리밍을 통해 데이터 처리(spark streaming)가 된다...인 것같다.


    ++10/19일추가

    MapReduce는  자체 프로세스에서 각 job을 실행 job이 끝나면 그 프로세스 죽음

    Spark는 단일 프로세스에서 많은 job을 실행 job이 없어도 spark application life time동안 실행됨




    번외 HDFS를 이용한 맵리듀싱의 단점..과 그걸 해결하기 위한 RDD.. http://weejw.tistory.com/46





    출처url

    http://1004jonghee.tistory.com/entry/MapRedcue-%EC%BB%B4%EB%B0%94%EC%9D%B4%EB%84%88Combiner

    http://blog.acronym.co.kr/312

    http://over153cm.tistory.com/entry/%EB%A7%B5%EB%A6%AC%EB%93%80%EC%8A%A4MapReduce%EB%9E%80-1


    1. GoF의 디자인 패턴으로 유명한 랄프 존슨(Ralph Johnson) 교수는 프레임워크를 "소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것 [본문으로]

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

    버츄어박스에 coreOs+Dockerswarm+spark 를 깔아보자  (0) 2017.07.21
    도커에서 spark를 설치해 보자  (0) 2017.07.13
    RDD(Resilient Distribured DataSet)란?  (0) 2017.07.12
    spark를 설치해보자  (0) 2017.07.11
    spark란?  (0) 2017.06.25

    대화의 장 💬