일반적인 분산 파일 시스템
- 마스터 노드 : 관리자 (1대)
- 스레이브 노드 : 실제 데이터 분산 저장 (여러대). 분산 상태를 마스터가 관리
하둡 분산 파일 시스템 HDFS
- 네임 노드(마스터 노드) : 슬레이브 노드 동작, 메타데이터 실시간 관리
- 데이터 노드(슬레이브 노드) : 하나의 데이터 블록을 몇 대의 데이터 노드가 복제하여 보관(잃어버리지 않도록)
- 신뢰성과 고장감내성
하둡과 맵리듀스 구조
HDFS 특징
- 한 블록의 크기가 크게 설정되어 큰 데이터를 한번에 가져올수있도록 설계
- 데이터 일괄 처리에 최적화 <- 수집된 데이터를 수정할 필요가 없기 때문
HDFS 상에서의 데이터 분석 프레임 워크
- 데이터 중심 프로그래밍 모형 : 작업 분할, 스케줄링, 네트워크 구성 등은 플랫폼 차원에서 수행하여 단순화 됨
- 프로그래머는 맵/리듀스 함수만을 작성 : 데이터 노드에서 실행(데이터 전송 최소화 - 일괄처리)
맵리듀스 프로그래밍 모형
- 맵함수 : 입력 <키. 값>을 새로운 <키, 값>으로 변환
- 리듀스 함수 : 시스템이 수집한 < 키, (값, ... )>을 다시 <키, 값>으로 변환하여 HDFS에 저장
- 중간 과정은 하둡 시스템이 해결
맵리듀스 프로그래밍 예제
- 여러 문서에 등장하는 단어 수 새기
- 맵 : <단어1, 1>, <단어2, 1>, . . .. .
- ( 중간 과정 : <단어1, (1, 1, 1, . . .)> )
- 리듀스 : <단어1, 1+1+1+1+ . . .>, . . .
map(key:document, value:text){
for word in tokenize(value)
emit(word, 1)
}
reduce(key:word, value: list of 1s){
emit(key, sum(value))
}
단어 세기를 맵리듀스로 하는 이유
- 문서가 10억개고, 문서 하나당 100kb시 -> 전체 용량은 100TB(빅데이터)
- 하나의 디스크에 저장 불가능 (분산 파일 시스템)
- 100MB/초 컴퓨터 1대로 순차 처리시 12일 소요
- 1000대로 처리시 17분(분산 처리)
컴바인 함수
- 노드간 데이터 전송을 최소화하기 위함. 중간 과정 제어
- 맵 작업과 같은 데이터 노드에서 실행.
맵리듀스 프로그램 개발 편의를 위한 설정들
- 환전 분산 모드 : 여러대 서버로 구성. 개인 구성 힘듬
- 의사 분산 모드 : 한대의 컴퓨터에서 완전 분산 모드 흉내 HDFS
- 도자 모드 : 의사 분산 모드에서 로컬 파일 시스템 사용
R로 맵리듀스 프로그래밍
- rhdfs로 R에서 접근가능 : to.dfs(), from.dfs()
- rmr로 R에서 맵리듀스 함수 작성, 프로그램 실행
R과 빅데이터 결합
- 비분산 저장, 처리기술 -> 빅메모리, 빅애널리틱스
- 분산 저장, 처리 기술 -> 하둡
'컴퓨터과학 > SW, DB' 카테고리의 다른 글
빅데이터 - 5. 빅데이터 분석 (0) | 2020.11.19 |
---|---|
빅데이터 - 4. 빅데이터 수집 (0) | 2020.11.18 |
빅데이터 - 2. 빅데이터 기술 (0) | 2020.11.17 |
빅데이터 - 1. 빅데이터, 데이터 과학, 활용 (0) | 2020.11.17 |
네트워크 (0) | 2020.05.23 |