실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

MapReduce 상세소개
MapReduce 프레임웍

 

 

2004년 구글랩에서 발표한 MapReduce: Simplified Data Processing on Large Cluster란 논문을 바탕으로 작성된 분산처리시스템.
MapReduce 프레임웍은 일종의 대규모 분산 Merge-Sorting 프레임웍.
특징
데이터가 있는 서버로 코드를 전송.
데이터프로세싱을 키/밸류 데이터셋의 변환으로 진행 (mapper와 reducer)
Share Nothing 아키덱쳐.
MapReduce 프레임웍에서 동작하는 mapper들끼리 그리고 reducer들끼리는 서로에 대한 의존성없이 동작.
프레임웍이 mapper와 reducer의 중간에서 셔플링/소팅을 해주기에 가능.
Data Locality를 최대한 활용:
Mapper를 실행한 서버를 찾을때 입력파일블럭을 이미 갖고 있는 서버나 그 서버와 같은 Rack에 있는 서버를 찾으려고 시도.. 



 

 

 

  

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

HDFS 액세스


 

HDFS 라이브러리를 이용하거나 하둡 셀 커맨드를 이용하여 액세스 가능
HDFS 자바 라이브러리
Hadoop 셀커맨드
예) hadoop fs -mkdir 디렉토리이름
Hadoop DFS 어드민
예) hadoop dfsadmin -report

 



 

 

 

  

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

Data 쓰기


 

클라이언트는 HDFS 파일을 생성하고자 하면 먼저 로컬파일시스템에 파일을 생성
파일 생성이 끝나거나 크기가 데이터블록의 크기보다 커지면 이때 NameNode를 컨택. NameNode는 파일생성요청을 메모리메타정보와 EditLog에 저장.
NameNode는 Replication factor만큼의 DataNode와 블럭ID를 클라이언트에게 전송.
클라이언트는 이중 첫번째 DataNode에 데이터를 쓰면서 replication이 벌어져야하는 나머지 DataNode들의 리스트를 같이 넘긴다.
첫번째 DataNode는 데이터를 복제받으면서 두번째 DataNode로 복제를 시작한다.
마지막 DataNode에서 블록의 복제가 완료되면 이 시점에서 해당 데이터블록의 생성은 완료된 것으로 간주됨.  이 프로세스를 Replication pipelining이라 함.
클라이언트에서 파일에 써야할 데이터(데이터의 크기가 블록크기가 되거나 파일생성이 끝날때까지 기다림)가 더 있으면 다시 3으로 가서 반복.

 



 

 

 

  

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

Data 읽기

 

클라이언트는 먼저 NameNode와 통신하여 해당 파일의 데이터블록 위치 리스트(DataNode와 블록ID)를 얻음.
파일의 크기가 데이터블록크기(기본 64MB)보다 작다면 한쌍의 DataNode/블록ID로 충분
클라이언트는 DataNode들과 직접 통신하여 블록데이터들을 차례대로 읽어들임.

 



 

 

 

  

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

NameNode (2)

 

A single point of failure.
NameNode는 메타정보(HDFS namespace와 파일블록맵핑)를 메모리에 유지하며 또한 모든 HDFS 클라이언트와의 트랜잭션을 EditLog라는 파일에 수록함(문제시 복구목적).
Checkpoint: 이 작업이 시작되면 NameNode의 메타정보를 FsImage라는 디스크파일로 쓰고 EditLog 파일을 리셋함.
Secondary Name Node는 주기적으로 이 checkpoint를 요청하고 FsImage를 백업. 하지만 NameNode에 문제가 생길 경우 이를 바로 대체할 수 있는 것은 아님.
Hadoop HA (High Availability)의 주요 개선 포인트 (Introduction of standby NameNode) - Hadoop 0.23 or Hadoop 2.0

세이프 모드 (Safe Mode)
처음 스타트업시 NameNode는 마지막으로 저장된 FsImage를 읽어들이고 다음으로 EditLog의 내용을 리플레이한다.
그 다음으로 클러스터내의 DataNode들로부터 상태와 보유블럭리스트를 받아서 자신이 갖고 있는 정보와 맞춰본 다음에 replication factor들이 보장되고 있는지 확인하는데 이 과정 중에는 외부 요청에 반응하지 않음. 이 모드를 세이프 모드라고 함.



 

 

 

  

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

NameNode (1)

 

HDFS마다 단 하나만 존재 (Hadoop 1.X나 이전 버전)

HDFS의 마스터 노드로 저장되는 각종파일들의 메타정보를 관리하고 실제 데이터는 다수의 Data Node 에 분산 저장.
파일이 블록단위(기본 64MB)로 나뉘어 저장되고 설정에 따라 보통 세 군데((replication factor)의 Data Node에 중복 저장
블록크기는 hdfs-site.xml의 dfs.block.size 파라미터로 조절가능.
Rack awareness: 중복저장시 Rack위치를 유념하여 한 rack에 모든 복제블록이 놓이지 않도록 함. 

Data Node들의 계속적으로 통신 (Heartbeat)
각 DataNode들로부터 현재 상태와 보유 데이터블록 리스트(블록리포트)를 체크.
문제 Data Node가 감지되면 그 노드의 블록들을 다른 노드들에 복제. (replication factor를 유지하려 시도).
기본적으로 둘간의 통신은 3초마다 일어나는데 이는 hdfs-site.xml의 dfs.heartbeat.interval 파라미터로 조절가능.


 

 

 

  

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

HDFS 상세소개

 

 

HDFS 개요

Write Once Read Many
Append 작업은 가능하지만 내용을 바꾸기 위해서는 파일 전체를 새로 써야한다.
스트리밍 데이터 액세스
배치잡에 최적화
MapReduce나 HBase와 같은 시스템의 기본구성블록으로 사용
계층구조의 파일시스템을 제공
Write Once Read Many
Append 작업은 가능하지만 내용을 바꾸기 위해서는 파일 전체를 새로 써야한다.
스트리밍 데이터 액세스
배치잡에 최적화
MapReduce나 HBase와 같은 시스템의 기본구성블록으로 사용
계층구조의 파일시스템을 제공




 

 

 

  

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

하둡의 문제점

 

 

너무나도 많은 버전과 부실한 서포트
3rd Party 배포판이 인기가 높은 이유.

셋업과 사용이 쉽지 않음
비용/시간이 들며 맞는 스킬셋을 가진 사람의 고용도 쉽지 않음.

하둡에 맞지 않는 작업도 존재
소규모이거나 대용량의 데이터처리가 필요하지 않다면 하둡으로 옮겨갈 이유가 없음.




 

 

 

  

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

+ Recent posts