⭐ Plogramming/BigData
Chapter 2. 하둡 아키텍쳐
김진한
2023. 7. 2. 17:47
1. 하둡 아키텍쳐
- 하둡 클러스터
- HDFS과 얀(클러스터 리소스 매니저)를 기반으로 하는 하둡 SW를 사용하는 컴퓨터들의 집합체
- 마스터 노드: 클러스터의 작업을 중재
- 워커 노드: 마스터의 명령을 수행하며 데이터가 저장되고 프로세싱
- 하둡 서비스
- HDFS 서비스
- 얀 서비스
2. HDFS 아키텍처
- 데이터 스토리지
- 특징
- 대용량 데이터 세트 다루기
- 장애 허용
- 기본적으로 3번 복제가 되어 다른 노드에 데이터가 저장되기 때문에 장애 서버의 영향을 받지 않는다. (서버의 병렬화)
- 데이터 스트리밍
- 배치 프로세싱을 위해 디자인되었으며 데이터 세트에 대해 스트리밍 접속이 가능하도록 만들어졌다.
- 단순 데이터 일관성 모델
- WORM(Wite Once Read Many access model)로 하나의 주체만 기록할 수 있다.
- 마스터 노드
- 네임 노드(HDFS 메타데이터를 관리)나 리소스 매니저(잡이나 태스크 관리)같은 핵심 서비스가 실행
- 메타데이터 유지 -> 메모리에 저장
- 사용자 접속 관리
- 데이터 노드에 매핑
- 어떤 노드를 복제하고 삭제할지 결정
- 네임 노드 오퍼레이션
- 메타데이터를 fsimage 파일로 디스크에 저장
- 세컨더리 네임 노드
- 클러스터를 멈추지 않고 주기적으로 fsimage 파일의 체크포인트를 실행 -> edit 파일(fsimage 파일의 로그 파일)로 통합 -> 네임 노드에 업데이트 정보 제공
- 스탠바이 네임 노드
- 사용하던 네임 노드(액티브 네임 노드)가 장애 노드가 될 경우 자동으로 실행 -> 고가용성
- 워커 노드(데이터 노드)
- 노드매니저(얀)을 실행
- 로컬에 저장하는 방식으로 블록 스토리지 서비스를 제공
- 데이터에 대한 읽기.쓰기 기능
- 데이터 블록 생성.삭제
- 데이터 복제
- HDFS 파일 시스템
- 파일 블록은 무작위로 클러스터에 분산 저장
- 파일을 작성하면 수정할 수 없으나, 이동/삭제/이름 변경은 가능
- 바이너리 포맷의 데이터 -> 불완전한 레코드가 생성되는 것을 막을 수 있음
- SequenceFile(키-값 목록으로 표현)의 포맷도 사용
- 하둡 자체 라이브러리를 사용하면, HDFS 데이터에 직접 접근 가능(외에는 로컬센터의 랙에서 데이터를 읽도록 함)
- 불균형 데이터 가능성
- 분산 저장되는 데이터들이 시간이 지날 수록 불균형을 이루게 됨
4. 얀 아키텍처
- 얀 컨테이너
- 메모리와 cpu와 같은 다른 리소스의 양을 구체적으로 표현하는 논리적 구조
- 태스크가 시작할 때 생성되어 완료되면 소멸된다. -> 갖고 있던 리소스는 다른 태스크에 할당
- 리소스매니저
- 클러스터마다 하나만 존재
- 컨테이너를 각 애플리케이션에 할당 -> 컨테이너를 스케줄링
- 데이터 노드의 리소스 할당
- 스케줄러 & 애플리케이션 매니저
- 노드매니저
- 컨테이너의 라이프 사이클을 관리
- 애플리케이션을 시작하고 리소스 매니저와 정보를 주고 받음
- 로그 관리
- 데이터 노드의 상태 추적
- 애플리케이션마스터
- 얀 애플리케이션에는 하나의 전용 애플리케이션 마스터가 있음
- 태스크 스케줄링과 실행 관리
- 애플리케이션 태스크를 위해 로컬 리소스 할당
- 잡 히스토리 서버
- 전체 클러스터에 하나만 존재
- 얀 컴포넌트 간의 협업