데이터 쓰기시 필요한것 , 블럭싸이즈 지정 replication 특성 : 각 블럭은 여러곳에 분산 저장됨(일반적으로 3곳)
받을때
파일에 대한 모든 블록의 목록
클라이언트로 부터 가까운 노드순으로 데이터 전송
받은 순서데로 데이터 다운로드
데이터 노드
분산된 데이터노드들을 정렬해서 보냄
모든 데이터를 하드에 저장하고 네임노드에 Done 신호를 보냄
저장하기전에 메타데이터정보를 저장해야됨
네임노드가 죽으면 모든 클러스터도 죽음
데이터를 보낼때마다 노드는 ACK 응답을 함
데이터를 전송할때 checksum 같이 보냄
※ 만약 데이터 노드에서 ack 응답을 받지못하면 죽었다고 생각하고 다시 pipelien을 설정 처리시 나중에 네임노드가 처리함
※ 데이터 노드가 죽었다면 다른 노드에서 데이터를 읽어옴
HDFS(Hadoop Distributed File System)
HDFS 파일의 분산 저장이 목적
HDFS는 name 노드와 data 노드로 구성
name노드는 master와 sexondary 노드 로 구성될 수 있음
보조노드는 마스터 노드의 백업 노드가 아님
HDFS를 이용하면 저가의 컴퓨터로 대 용량 데이터를 저장할 수 있는 시스템을 구축할 수 있음
무중단 용량 확장 방식을 지원하므로 노드의 추가, 제거등 관리 관점 유리함
블록단위로 파일을 관리하며 복제 기능을 통해 안정성 및 신뢰성을 보장함
디폴트 블록단위 64Mbtre임
마스터 서버에 400개 이상의 데이터 노드를 운영할 수 있으며 코어는 파이썬 java c/c++ 지원
로컬 모드
한 대의 서버 상에 HDFS를 사용하지 않고 MapReduce 동작 환경을 구축
HDFS를 사용하지 않기 때문에 NameNode 프로세스, DataNode 프로세스로도 동작하지 않음
단일 자바 프로세스로 실행되기 때문에 JobTracker 프로세스, TaskTracker 프로세스 모두 동작하지 않음
MapReduce 동작만 검증
유사분산모드
한 대의 서버 상에 HDFS를 사용한 MapReduce 동작 환경을 구축
NameNode 프로세스, DataNode 프로세스 모두 한 대의 서버 상에서 동작
JobTracker 프로세스, Task Tracker 프로세스 모두 한 대의 서버상에서 동작
HDFS/MapReduce 동작 검증, Hadoop 애플리케이션 기능 검증
완전 분산 모드
여러 대의 서버 상에 HDFS를 사용한 MapReduce 동작환경을 구축한다.
상용 환경 구축, 노드 간 통신을 포함한 HDFS/MapReduce 동작 검증, 성능 등의 비기능 요건을 포함한 애플리케이션 검증
NameNode
클라이언트에 요구받은 데이터를 블럭으로 분리 및 카피
큰 파일을 여러 불럭으로 분리
저장 순서 첫블럭부터 데이터 노드에 전송
입력되는 파일에 대한 저장소선택, 복제 개수 지정 등 데이터 노드를 관리
Master node로 파일에 대한 메타 데이터를 저장하는 노드로, 디렉토리 구조, 파일에 대한 각종 메타 데이터, 그리고 물리적 파일이 저장되어 있는 위치 등을 저장
Checkpoint 관리를 수행합니다. (주기적으로 상태를 체크해 빠른 시간에 장애를 인지하고, 대처할 수 있게 도움
fsimage : 파일 위치에 대한 매칭과 속성 등 namespace를 저장
editlog : 파일 입출력에 대한 트랜잭션 로그를 저장
Secondary Namenode
네임노드의 fsimage와 editlog 스냅샷을 저장
보노 네임노드는 Master 서버(네임노드) 장애 시 복구하기 위한 기능이 아님
Hadoop을 재 가동할 때 editlog의 트랜텍션 로그를 다시 작성(rebuild) 해주는 역할
DataNode
실제 파일을 저장/읽기 수행. 하나의 파일을 블록이라는 단위로 나눠서 저장하는 역할을 수행
Block단위는 임의 설정이 가능합니다. 디폴트는 64MByte
네임노드와 주기적으로 통신하여 저장하고 있는 블록에 대한 정보를 네임노드에 저장
데이터 노드에 저장된 파일들은 정책에 의해 자동 분산 저장되며 1대 node에 장애가 나도 서비스 영향 없음
파일시스템 (fsimage)
fsimage는 파일시스템에 존재하는 모든 디렉터리와 파일 아이노드 정보를 바이트로 직렬화(디렉터리, 파일명, 상태 정보 등을 바이트 배열로 표현)한 파일입니다. 각 아이노드는 파일이나디렉터리의 내부적인 표현이며 파일의 복제 단위, 변경 및 접근시간, 접근권한, 블록크기와 파일을 구성하는 블록조합들 같은 정보를 가집니다. 디렉터리는 변경 시간, 권한, 할당 크기 같은 메타데이터가 저장
배운것
받을때
데이터 노드
※ 만약 데이터 노드에서 ack 응답을 받지못하면 죽었다고 생각하고 다시 pipelien을 설정 처리시 나중에 네임노드가 처리함 ※ 데이터 노드가 죽었다면 다른 노드에서 데이터를 읽어옴
HDFS(Hadoop Distributed File System)
로컬 모드
유사분산모드
완전 분산 모드
NameNode
Secondary Namenode
DataNode
파일시스템 (fsimage)