메모장

빅데이터 분산 컴퓨팅 정리(5~8강 HDFS와 맵리듀스) 본문

교육(KOCW, 오프라인)/빅데이터분산컴퓨팅(하둡에코시스템)

빅데이터 분산 컴퓨팅 정리(5~8강 HDFS와 맵리듀스)

hiandroid 2017. 8. 30. 16:54
반응형

HDFS의 file저장 방식

1. FILE은 block단위로 분할

 - 각 block은 기본적으로 64mb 또는 128mb 크기


2. 데이터가 로드 될 때 여러 machine에 분산되어 저장됨

 - 같은 file의 다른 block들은 서로 다른 machine에 저장됨

 - 이를통해 효율적인 mapReduce처리가 가능


3. block들은 여러 machine에 복제되어 data node에 저장됨

 - 기본 replication은 3개

- 각 block은 서로 다른 3개의 machine에 저장되어 있다는 것을 의미


4. name node로 불리는 master node는 어떤 block들이 file을 구성하고 있고, 어느 위치에 저장되어 있는지에 대한 정보를 meta data로 관리



네임노드

namenode daemon은 반드시 항상 실행되고 있어야 함

 - 네임노드가 중단되면, 클러스터는 접근이 불가능


하둡 서버 롤


마스터(슬레이브에 있는 모든 데이터들을 관리)

 - 네임노드: 네임노드에는 블록들의 메타데이터를 저장

 - 잡 트래커: 태스크 트래커들을 관리

슬레이브

 - 데이터노드: 데이터노드에는 블록들이 저장

 - 태스크 트래커: 실제 데이터들을 관리


맵리듀스: 하둡 클러스터 데이터를 처리하기위한 시스템

 - 맵 리듀스는 여러 노드에 태스크를 분배하는 방법

 - 각 노드 프로세스 데이터는 해당 노드에 저장

 - 두 단계로 구성(맵, 리듀스)


데이터를 블록단위로 자르고 맵으로 수행하고 리듀스로 다시 합침


스토리지 - HDFS - 네임노드, 데이터노드

클러스터 - 맵리듀스



HDFS -> M1,R1 -> HDFS -> M2,R2 -> HDFS -> M3,R3 ...

맵리듀스가 끝날때마다 쓰고 다시가져오고 쓰고... 반복


1990~2000당시 메모리는 비싸고 디스크는 싸서 디스크에 쓰고 읽기로 작업


잡트래커: 맵리듀스 잡들은 잡트래커라는 SW데몬에 의해 제어됨

 - 잡트래커는 '마스터노드'에 있음


1. 클라이언트는 맵리듀스 잡을 잡트래커에게 보냄

2. 잡트래커는 클러스터의 다른노드들에게 맵과 리듀스 TASK를 할당한다

3. 이 노드들은 태스크트래커라는 SW데몬에 의해 각각 실행된다.

4. 태스크트래커는 실제로 맵 또는 리듀스 TASK를 인스턴스화하고, 진행상황을 잡트래커에게 보고할 책임이 있다.


맵퍼

 - 맵퍼는 key/value 쌍의 형태로 데이터를 읽는다.


ex. i am a

      boy you

      are a girl


-> <1, i am a> <2, boy you>, <3, are a girl>

-> <i, 1>, <am, 1>, <boy, 1>, <you, 1>, <are, 1>, <a, 1>, <girl, 1>


map은  map형식 - <key, value> 

output은 list형식 - [<key, value>]


정리

HDFS -> HDFS Read -> Map -> Shuffle -> Reduce -> HDFS에 Write(반복)


HDFS file1 읽기 -> <k, v> -> map -> [<k, v>] -> Shuffle -> Reduce -> <k, v> -> HDFS file2로 쓰기


반응형