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 |
---|