상 | Hadoop 3.0 | [운영측면 특징] 이레이저 코딩(Reed Solomon), YARN Timeline Service v.2(Timeline Server), MapReduce task-level native optimization(JNI[Java Native Interface]) [개발측면 특징] JDK 8.0, Shell script/api, HA |
토픽 이름(중) | Hadoop 2.0 3.0 |
분류 | DB > Hadoop(Framework) > Hadoop 2.0 |
키워드(암기) | HFDS, Map-Reduce, YARN(Yet Another Resource Negotiator) |
암기법(해당경우) |
기출문제
번호 | 문제 | 회차 |
1 | 하둡 분산파일시스템(HDFS: Hadoop Distributed File System)의 특징 및 구조에 대하여 설명하고, 구성요소인 네임노드, 데이터 노드의 역할에 대하여 설명하시오 | 111.응용.2 |
2 | 빅데이터 분산처리시스템인 하둡 MapReduce의 한계점을 중심으로 Apache Spark와 Apache Storm을 비교하여 설명하시오 | 105.정보관리.2 |
3 | 빅데이터 핵심기술을 오픈소스와 클라우드 측면에서 설명하고, 표준화 기구들의 동향을 설명하시오 | 101.정보관리.2 |
4 | 아파치 하둡(Apache Hadoop)의 구조와 작동 개요를 맵리듀스 엔진 (MapReduce engine)중심으로 설명하시오. | 99.정보관리.3 |
I. Hadoop1.0의 문제점과 Hadoop 2.0의 등장
- Hadoop1.0의 문제점
문제점 | 설명 |
Job Tracker의 병목 | - 클러스터 자원배분과 Job 관리를 함께 수행 - 클러스터에서 병목의 지점이 됨 |
낮은 자원 활용 | - 고정된 맵/리듀스 슬롯 - 한 노드에서 실행할 수 있는 Map과 Reduce용 태스크 개수가 제한됨 - 즉, 노드에 여유 자원이 있어도 그 자원을 활용하지 못함 |
확장 한계 | - 맵리듀스만 실행 가능 |
- Hadoop2.0의 등장
- Hadoop1.0의 문제점을 해결한 YARN 아키텍처 도입
- Yet Another Resource Negotiator
- 하둡 클러스터의 각 어플리케이션에 필요한 리소스를 할당하고 모니터링 하는 업무에 집중함으로써 다양한 어플리케이션이 하둡 클러스터의 리소스를 공유할 수 있도록 하는 핵심요소
- JobTracker가 하던 두 가지 역할(자원관리, Job 상태관리)를 ResourceManager와 ApplicationMaster로 분리(JobTracker의 병목제거), 범용 컴퓨팅 클러스터 역할
- MR외에 다양한 어플리케이션을 실행할 수 있으며, 어플리케이션마다 자원(CPU, Memory)을 할당
- MapReduce를 사용하지 않는 어플리케이션이 하둡 클러스터에 접근할 수 있도록 관리 기능을 제공
- 하둡 기반 스케줄링, 자원관리, 다양한 종류의 분산환경을 지원하는 차세대 하둡 플랫폼기술
- YARN이라는 자원관리와 다양한 이중화 기능이 개선된 HDFS 2를 바탕으로 플러그인 구조를 가질 수 있는 확장 가능한 모델을 제공
- Hadoop 1.0과 구분되는 YARN 기반 Hadoop2.0의 특징
- Hadoop 2.0의 특징
특징 | 설명 |
JobTracker의 역할분리 | - 하둡 1.0 JobTracker의 클러스터 전체의 리소스 관리와 Job 수행관리의 분리 - Resource Manager: 리소스 관리 - Application Master: Job 관리 |
효율적인 자원관리 | - 하둡 1.0의 맵/리듀스 슬롯의 개념을 제거해 클러스터 전체의 사용 효율성이 증대됨 |
확장성 범위확대 | - 하둡 1.0의 하나의 JobTraker 노드환경의 클러스터 확장문제를 Resource Manager, Application Master의 분리로 해결 |
다양한 분산처리 환경지원 | - MapReduce이외의 다른 분산처리 환경 지원 - YARN API를 이용하면 새로운 분산처리 개발 가능 - 버클리대학에서 만든 SPARK, STORM 등이 YARN위헤서 동작 - 배치처리 방식뿐만아니라 실시간, 스트리밍 등 가능해짐 - Batch, Interactive, Realtime, Streaming |
- Hadoop2.0의 구성도와 구성요소
- Hadoop2.0의 구성요소
구분 | 요소 | 설명 |
Resource Manager | - 클러스터 전반의 자원관리와 테스크들의 스케줄링을 담당 - 클러스터마다 존재 - 클러스터 내에 설치된 모든 Node Manager와 통신을 통해 각 서버의 자원 관리 |
|
Scheduler | - Node Manager들의 자원상태 관리, 부족한 리소스 배정 | |
Application Manager | - Node Manager의 Application Master의 상태관리 - Application Master: YARN에서 실행되는 하나의 Task를 관리하는 마스터 서버 |
|
Resource Tracker | - Container의 라이브 체크를 위해 Application Master의 재시도 횟수, 대기시간 등 설정관리 | |
Node Manager | - Container의 리소스 사용량 모니터링, 관련 정보를 Resource Manager에 통지, 노드당 한 개씩 존재 | |
Application Master | - 하나의 프로그램에 대한 마스터 역할 수행 - 스케줄러로부터 적절한 Container를 할당받고, 프로그램 실행상태 모니터링 |
|
Container | - CPU, Disk, Memory 등과 같은 속성으로 정의 - 각 테스크는 하나의 Containe안에서 실행 |
- Hadoop1.0과 2.0, 3.0의 비교
가. 하둡1.0과 2.0 비교
나. 하둡1.0의 맵리듀스와 하둡2.0의 얀 비교
구분 | Map/Reduce | YARN |
역할 |
|
|
확장성 |
|
|
기능 |
|
|
고가용성 (High Availability) |
NameNode는 SPOF(Single Point Of Failure, 단일 고장점) | 고가용 공유 스토리지를 활용한 NameNode 이중화 (Active- Standby) |
연합 (Federation) |
|
|
다. 하둡 1.0, 2.0, 3.0 특징
버전 | 특징 |
하둡 1.0 | * 분산저장, 병렬처리 프레임워크를 정의 - 분산저장(HDFS) : 네임노드, 데이터 노드가 처리 - 병렬처리(MapReduce) : 잡트래커, 태스트 트래커가 처리 * 클러스터당 최대 4000개의 노드를 등록 * 작업 처리를 슬롯(slot) 단위로 처리 - 맵, 리듀스 슬롯을 구분하여 처리 |
하둡 2.0 | * YARN을 도입하여 병렬 처리 구조를 변경 - 클러스터 관리 : 리소스 매니저, 노드 매니저 - 작업 관리 : 애플리케이션 마스터, 컨테이너 * MR 외 Spark, Hive, Pig 등 다른 분산 처리 모델도 수행 가능 * 클러스터당 1만개 이상의 노드 등록 가능 * 작업 처리를 컨테이너(container) 단위로 처리 |
하둡 3.0 | * 이레이져 코딩(Erasure Coding) 도입 - 기존의 블록 복제(Replication)를 대체하는 방식으로 HDFS 사용량 감소 * YARN 타임라인 서비스 v2 도입 - 기존 타임라인 서비스보다 많은 정보를 확인 가능 * 스크립트 재작성및 이해하기 쉬운 형태로 수정 - 오래된 스크립트를 재작성하여 버그 수정 * JAVA8 지원 * 네이티브 코드 최적화 * 고가용성을 위해 2개 이상의 네임노드 지원 - 하나만 추가할 수 있었던 스탠바이 노드를 여러개 지원가능 스탠바이 노드 * Ozone 추가 - 오브젝트 저장소 추가 global ResourceManager (RM) and per-application ApplicationMaster (AM). |
[참고] YARN기반 실행
- Stom on YARN, 호튼웍스, Spark on YARN, Apache Giraph on YARN, HOYA(Hbase on YARN), 호튼웍스
[참고] Hadoop2.0을 활용한 배포판
- 맵알(MAPR) 하둡 플랫폼, 호튼웍스 HDP 2.0, 클라우데라 CDH 4.0: 실시간 처리엔진 Impala와 SPARK 탑재
. [참고] 하둡 에코시스템
- 하둡에는 보완적인 서비스들을 제공하거나 비즈니스에 적용할 수 있는 다양한 서브 프로젝트가 존재함
- HDFS와 MapReduce가 하둡의 코어 프로젝트, 나머지는 하둡의 하부 프로젝트이다
구성요소 | 설명 |
Core | 분산 파일시스템으로 일반적인 입출력(직렬화, 자바 RPC, 영속데이터 구조)을 위한 컴포넌트와 인터페이스의 집합 |
Avro | 교차언어 RPC와 영속적인 데이터 스토리지를 위한 데이터 직렬화 시스템 |
MapReduce | 범용 컴퓨터들의 커다란 클러스터에서 수행되는 분산데이터 처리 모델과 실행환경 |
HDFS | 범용 컴퓨터들로 된 커다란 클러스터에서 수행되는 분산 파일 시스템 |
Pig | 대규모 데이터셋 탐색용 데이터 흐름언어와 실행환경 |
HBase | 분산 컬럼 지향 데이터베이스 스토리지로 HDFS 를 사용 |
ZooKeeper | 다수 컴퓨터로 분산 처리되는 고가용성 조정 (available coordination) 서비스로, 분산 락(Lock) 같은 프리미티브를 제공 |
Hive | 분산 데이터웨어하우스, HDFS에 저장된 데이터를 관리하고, 데이터 쿼리를 위하여 SQL 기반 쿼리 언어(런타임 엔진에 의해 맵리듀스로 변환되는) 제공 |
Chukwa | 분산 데이터 수집 및 분석 시스템, HDFS에 데이터를 저장하는 수집기를 수행하고, 보고서를 생성하기 위해서 맵리듀스를 사용 |
반응형
'정보관리기술사 > DB_데이터분석' 카테고리의 다른 글
DB Table partitioning (2) | 2023.08.28 |
---|---|
샤딩(Sharding) / Shard (0) | 2023.08.27 |
HDFS(Hadoop Distributed File System) (0) | 2023.08.25 |
Big Data 보안 (0) | 2023.08.24 |
아파치 카프카(apache kafka) (1) | 2023.08.23 |