병렬분산 이론

노문택·2022년 2월 23일

병렬분산이론

목록 보기
1/2

Scale-out : 값싼 많은서버
Scale-up : 비싼서버에 적은서버

데이터중심 => Scale- out 선호

고가의 서버 => 선형 성능증가

2배성능 1개 vs 1배성능2개

=> 1배성능 2개 가격이 더쌈

Scale-out 선호

그럼 왜 맵리듀스?

한대로는 힘듬.. 수십~ 수백개를 하나로 묶어서처리 => 맵리듀스 프레임워크가 이걸해줌

빅데이터 이용하는 효율적 계산이 가능한 첫번째 프로그래밍 모델

=> 기존꺼는 A~Z 까지 다알아줘야되지만 그나마 수월함

맵리듀스프레임워크

scalable => 사용자수가 급증 or 데이터 증가해도 성능유지가가능

맵리듀스 , 하둡 이 있음

함수형 프로그래밍임
=> (Main Map Reduce) 3가지 로 구현해 제공

맵리듀스 프레임워크 레코드(튜플) KEY-VALUE로 표현

메인함수를 한개의 마스터에서 수행 (수행전에 전처리,reduce 함수 결과를 후처리 하는데 사용가능 )

맵-리듀스 phase를 1번~여러번가능

phase 사이사이 컴바인가능

맵리듀스 페이즈

1.맵페이즈

  • 제일먼저수행 , 여러파티션에 병렬분산호출
  • 각 머신마다 수행된 ampper는 한줄마다 map함수호출
  • 맵 함수는 key-value 결과 출력 후 여러머신에 나누어보냄

2.셔플링페이즈

  • 모든 머신에서 맵페이즈 끝나면 시작
  • key-value쌍을 key이용하여 정렬후에 각 key마다 같은 key를 가진 쌍을 모아 valuelist 만든후 key-valuelist로 분산해서보냄

3.리듀스페이즈

  • 셔플링이 끝나면 리듀스 시작
  • key-valuelist에 각각에 대해 리듀스 함수 호출됨

하둡

아파치 맵리듀스 프레임워크 오픈소스

빅데이터 파일을 여러대에 저장 , 각 파일은 여러개에 순차적 블록으로저장
하나의 파일의 각각블록은 폴트폴러런스를 위해 여러개로 복사되어 여러머신에 저장

폴트폴러런스? : 시스템 구성 부품에 결함 혹은 고장 일어나더 부분적으로 기능 수행가능하게함

하둡 구성요소
-맵리듀스(소프트웨어 수행 : 컴퓨팅분산) , HDFS (데이터분산)

한개의 네임노드(master) 나머지는 여러개의 DATENODE(SLAVE)

네임노드 : 파일시스템 관리 (hdfs) 클라이언트가 파일접근
데이터노드 : 컴퓨터가 파일접근 & 컴퓨팅 나눠서 진행

하둡은 자바로 맵리듀스 알고리즘

맵리듀스 함수

  1. 맵 함수
    mapper 클래스 상속 받아 method 수정
    key - valuelist 형태
    입력은 라인단위로 호출되고 value안에는 라인전체가있음
  1. 리듀스 함수
    reducer 클래스 상속받아 reduce 메소드 수정
    셔플링 페이즈의 출력을 입력으로 받음 key-valuelist 형태로 받고

  2. 컴바인
    리듀스 함수와 유사하지만 셔플링페이즈와 리듀스 페이즈 비용줄이는데 사용

--

profile
노력하는 뚠뚠이

0개의 댓글