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.맵페이즈
2.셔플링페이즈
3.리듀스페이즈
아파치 맵리듀스 프레임워크 오픈소스
빅데이터 파일을 여러대에 저장 , 각 파일은 여러개에 순차적 블록으로저장
하나의 파일의 각각블록은 폴트폴러런스를 위해 여러개로 복사되어 여러머신에 저장
폴트폴러런스? : 시스템 구성 부품에 결함 혹은 고장 일어나더 부분적으로 기능 수행가능하게함
하둡 구성요소
-맵리듀스(소프트웨어 수행 : 컴퓨팅분산) , HDFS (데이터분산)
한개의 네임노드(master) 나머지는 여러개의 DATENODE(SLAVE)
네임노드 : 파일시스템 관리 (hdfs) 클라이언트가 파일접근
데이터노드 : 컴퓨터가 파일접근 & 컴퓨팅 나눠서 진행
하둡은 자바로 맵리듀스 알고리즘
리듀스 함수
reducer 클래스 상속받아 reduce 메소드 수정
셔플링 페이즈의 출력을 입력으로 받음 key-valuelist 형태로 받고
컴바인
리듀스 함수와 유사하지만 셔플링페이즈와 리듀스 페이즈 비용줄이는데 사용
--