본문 바로가기
  • 개발 삽질 블로그
데이터/데이터 엔지니어링

하둡(Hadoop)

by 갹둥 2023. 5. 11.

Hadoop?

-대용량의 데이터를 분산처리해줄 수 있도록 해주는 아파치 톱 레벨 오픈소스 프로젝트
-자바로 작성된 소프트웨어 프레임워크
-크게 HDFS와 분산처리시스템(MapReduce), Hadoop Yarn, Hadoop Common으로 구성됨

 

 

 

  • Hadoop HDFS
    • The Google FileSystem이란 논문을 바탕으로 작성된 파일시스템
    • 파일을 여러개의 블록으로 나눠 저장
    • 한 데이터 블록을 보통 3군데에 저장
    • 파일의 내용을 바꾸려면 파일 전체를 새로 써야함
    • 하나의 NameNode와 여러 DataNode들로 구성 
  •  Hadoop Mapreduce
    • MapReduce:Simpligied Data Processing on Large Cluster라는 논문을 바탕으로 작성된 분산처리시스템 
    • 분산되어 저장된 데이터를 병렬 처리할 수 있게 해줌
    • 데이터가 있는 서버로 코드를 전송
    • key/value 데이터셋의 변환으로 데이터 프로세싱 진행
    • Shared Nothing 아키텍쳐
    • 하나의 Job Tracker와 여러 Task Tracker들로 구성
    • 병렬도가 높은 작업에 적합
  • Hadoop YARN
    • 기존에 Job Tracker가 하던 자원관리, Job 상태 관리를 ResourceManager와  ApplicationMaster로 분리
    • 병렬처리를 위한 클러스터 자원관리 및 스케줄링 담당
  • Hadoop Common
    • 하둡의 다른 모듈을 지원하기 위한 공통 컴포넌트 모듈




특징

-데이터가 있는 곳으로 코드를 보냄 ->  Data보다 코드를 옮기는 것이 효율적이기 때문
- Scale Out 방식 -> 여러개의 저렴한 서버 사용
-단순한 데이터 모델 -> <key, value>의 변환작업
-데이터의  locality를 최대한 이용
-오프라인 배치 프로세싱에 적합
 


문제점
-너무 많은 버전과 부실한 서포트
-사용하기 적합하지 않은 분야도 있음
 

'데이터 > 데이터 엔지니어링' 카테고리의 다른 글

하둡 Hadoop MapReduce  (0) 2023.05.16