on
Hadoop 이란?
Hadoop 이란?
Hadoop
여러대의 컴퓨터에서 병렬 분산처리 할 수 있는 오픈소스 프레임워크 Scale-out 방식 ( 서버 수를 늘림 <-> 서버 용량을 늘림 (scale-up 방식) )
Hadoop 특징
서버 추가 -> 선형적 성능 향상 -> 비용 절감
대용량 데이터(PB 이상) 저장
저장된 데이터 수정 불가(DELETE, INSERT만 가능) -> 데이터 일관성 무결성 보장
빠른 장애 복구 및 대응 -> 데이터 유실 방지
이중화(High Availability) (namenode, datanode) Namenode 메타 데이터, 블록 관리 (어떤 블록이 어디에 있는지) datanode를 모니터링 백업을 위한 file 저장 Datanode 데이터가 실제로 저장되어 있는 장소 hadoop job ( MapReduce ) 수행 시 작업하는 장소 namenode에게 주기적으로 상태 정보 전송 (heartbeaet, block report) Heartbeat: default) 3초마다 한번씩 namenode에게 신호를 보냄, 10분간 신호가 없으면 장애 서버로 판단한다고 함. Block report: 블록 ID 및 생성 스탬프, 사이즈 전송, datanode 등록 즉시, 매 시간마다, 최근 추가/삭제된 블록 정보를 전송한다고 함
Hadoop Ecosystem 연계 가능 -> 데이터 저장/수집
HDFS
Hadoop Distribute File System
대용량 데이터 분산 병렬 처리 -> File로 저장 ( Block(64MB/ 128MB) 단위 )
데이터 유실 방지: Hadoop 기본 복제 개수인 3개의 Block을 각 datanode에 균일하게 복제 ex) 1,2,3,4 번의 block을 저장해야 할 경우 -> 4개의 datanode에 ( (1,3,4), (1,2,4), (1,2,3), (2,3,4) ) 형식으로 저장됨 Hadoop에 저장 시 원본 데이터의 약 3배의 크기가 되지만, 어떤 한 datanode에 장애가 발생해도 유실방지에 최적화됨
File 관리: Namenode(Master), File 저장: Datanode(Slave)
SecondaryNamenode
주기적으로 Namenode의 File 블록 저장 상태 기록 (백업)
장애 발생 시 기록했던 File로 장애 발생 시점 전의 데이터 복구
MapReduce
여러 컴퓨터에 File을 분산 처리하는 프레임워크
대용량 데이터 병렬 처리, 안정성이 높음, 성능 좋음
File 관리: Namenode(JobTracker), File 처리, Datanode(TaskTracker)
TaskTracker (MapTask(데이터 묶음) + ReduceTask(데이터 집계)) Map: 입력 데이터 집합을 쪼개서, Key-Value 형태로 만들어줌 Shuffle: Key별로 데이터 수집 Reduce: 집계 연산 ex) Input Map td style="width: 25%; text-align: center;">Shuffle Reduce [A, B, C, D, A, D] [(A,1), (B,1), (C,1),
(D,1), (A,1), (D,1)] [(A,[1,1]), (B,1),
(C,1), (D,[1,1])] [(A,2), (B,1),
(C,1), (D,2)]
Hadoop v1
Hadoop v1: JobTracker가 자원 관리, 진행 상황 관리를 모두 담당
Hadoop v2
Hadoop v2: JobTracker의 기능 분리 -> YARN 아키텍쳐
( 자원 관리: 리소스 매니저, 노드 매니저, 작업 관리: 어플리케이션 마스터, 작업처리: 컨테이너 )
작업이 들어오면 애플리케이션 마스터 생성 -> 애플리케이션 마스터가 리소스 매니저에 자원을 요청 -> 실제 작업을 담당하는 컨테이너를 할당받아 작업을 처리한다.
컨테이너는 작업이 요청되면 생성되고, 작업이 완료되면 종료되기 때문에 클러스터를 효율적으로 사용할 수 있다.
YARN 아키텍처는 컨테이너를 할당 받아 동작하므로 Spark, HBase, Storm 등 다양한 컴포넌트를 실행할 수 있다.
Hadoop v3
이레이져 코딩 도입 -> 블록 복제 방식 대체 -> HDFS 사용량 감소 (3배 ~> 약 1.4배)
YARN 타임라인 서비스를 도임하여 기존 타임라인 서비스 보다 많은 정보를 확인가능 (HBase 활용)
Stanby Namenode 2개 이상 사용가능
Java 8 이상만 사용가능
MapReduce 최적화
from http://daruiniji.tistory.com/60 by ccl(A) rewrite - 2021-08-23 00:26:09