본문 바로가기
프로그래밍/ETC

하둡(Hadoop)이란?

by 멀티코린 2020. 11. 8.

하둡(Hadoop)

대규모 검색 색인을 구축하기 위해 자바로 개발된 오픈 소스 분산 컴퓨팅 플랫폼
초창기 개발 목적은 검색 색인 이였으나 이후 일반적인 다른 문제에도 폭넓게 적용되어 사용되고 있음.
여러 개선 과정을 거쳐 현재는 대규모 rawdata를 처리하고 분석하는 데이터 센터 운영 시스템의 핵심 소프트웨어 생태계이다.

 

 

 


하둡의 구성 요소

1/ 분산 파일 시스템 : HDFS

HDFS(Hadoop Distributed File System)이 가장 널리 사용되고 있으며 데이터의 중복 저장이란 개념을 바탕으로 한 대규모 분산 파일 시스템
일반적인 파일 시스템을 가진 여러 노드를 묶어 하나의 분산 파일 시스템을 구축하도록 설계되어 파일 시스템을 손쉽게 확장해 몇 페타바이트에 이르는 대용량 데이터까지 저장이 가능.

 

HDFS의 리플리케이션 메커니즘

데이터를 단순히 여러 노드에 저장하는 방식이 아닌, 데이터가 여러 랙에 분산 저장되도록 보장하는 전략을 사용.
-> 해당 전략은 단일 노드나 단일 랙의 장애가 데이터의 유실로 이어지는 사태를 방지해줌

분산 파일 시스템의 데이터를 읽거나 저장하려는 클라이언트는 필요한 HDFS 일부분과 직접 통신.

 

 


2/ 리소스 관리자와 스케줄러 : YARN

YARN(Yet Another Resource Negotiator) : 가장 효율적인 방법으로 계산 리소스를 할당하고 사용자 애플리케이션을 스케줄링하는 시스템.

특징

스케줄링과 리소스 관리로 데이터 지역성을 극대화하고 계산량이 많은 애플리케이션이 리소스를 독점하지 않게 제어함.
교체 가능한 스케줄링 시스템을 지원
클러스터의 리소스를 컨테이너로 분할.
* 컨테이너 : CPU 코어 수와 메모리 용량으로 정의
컨테이너들을 모니터링하면서 컨테이너가 리소스의 최대 할당량을 초과하지 않게 억제.

 

 


3/ 분산 데이터 처리 프레임워크 : 맵리듀스

Map Reduce는 구글이 발표한 분산 데이터 처리 프레임워크로 매우 단순한 모델에 기반을 둔다.
맵리듀스의 병렬 처리 모델은 문제를 맵, 셔플, 리듀스 단계로 나눠 수행.
HDFS의 데이터 지역성과 YARN의 작업 및 리소스 관리 기능 덕분에 맵리듀스는 이 세 단계 계산을 효율적으로 수행할 수 있음.

* 맵 단계 : 입력한 데이터가 클러스터에서 병렬로 처리되고 mapper 함수는 raw data를 key:value의 쌍으로 변환.
* 셔플 단계 : 변환된 데이터는 key를 기준으로 정렬돼 buckey으로 셔플링.
* 리듀스 단계 : 모든 키의 값을 처리하며 결과를 HDFS나 다른 영구 저장소에 저장.

댓글