Welcome! 🙋‍♂️ View more

Engineering 💻/Hadoop

[Hadoop] 핵심 컴포넌트 (feat. HDFS, YARN, ZooKeeper, Hive Metastore)

DeepFlame 2022. 1. 11. 19:00

하둡 에코시스템


빅데이터 활용을 극대화 하기위한 분산 스토리지와 연산 기능을 갖춘 프로젝트. 흔히 '하둡'이라하면 일반적으로 하둡을 중심으로 만들어진 프로젝트와 프레임워크 전부를 의미한다.

 

 

핵심 컴포넌트


HDFS (Hadoop Distributed File System)

  • 확장성장애 허용성을 가진 분산 파일 시스템
  • 파일 수정이나 삭제가 불가능하고, 추가만 가능하다. 따라서 대규모 데이터를 저장하는 데 탁월하다.
  • 데이터를 분산하여 저장하기 때문에, 개별 디스크나 데이터노드 또는 랙에 장애가 발생하더라도 데이터 안정성이 유지
  • 데이터노드를 클러스터에 추가하기만 하면 파일시스템 용량이 늘어남

 

클러스터
저장이나 연산 등 하나 이상의 기능을 제공하기 위해 협력하는 서버 조합을 말한다.
워커노드: 데이터 처리/연산 수행/조회 서비스를 제공

 

출처: Apache Hadoop

실행순서

Write-1. 데이터를 블록으로 나눈다.
Write-2. 블록을 저장하려는 클라이언트네임노드를 통해 블록이 저장될 데이터 노드의 목록을 받는다.
Write-3. 클라이언트는 첫 번째 데이터노드에 블록을 쓰고, 차례대로 다음 데이터노드로 파이프라인을 통해 데이터를 흘려보낸다. (네임노드는 데이터노드의 가용 저장 공간을 고려하여 파이프라인을 구성)
Read-1. 네임노드를 통해 읽을 블록을 가지고 있는 데이터 노드의 목록을 받는다.
Read-2. 최대한 가까운 곳에 위치한 데이터노드로부터 데이터를 읽어들인다.

 

 

 


YARN (Yet Another Resource Negotiator)

  • 데이터 연산을 동시에 실행할 수 있도록 구현
  • 리소스 관리, Job 스케줄링 일을 서로 다른 데몬에서 실행되도록 나눔

YARN 아키텍처

실행 순서

Assign-1. 클라이언트가 리소스 매니저에 어플리케이션을 제출한다.
Assign-2. 어플리케이션 마스터리소스 매니저에게 어플리케이션을 실행할 리소스 할당을 요청한다. 
Assign-3. 이때 연산 수행에 필요한 자원은 서로 다른 컨테이너 단위로 분할되어 어플리케이션 마스터에게 전달된다.

Run-1. 어플리케이션 마스터는 노드 메니저에게 컨테이너의 실행 명령을 전달한다.
Run-2. 코드가 컨테이너에서 실행된다.
Run-3. 어플리케이션이 종료되면 어플리케이션 마스터는 리소스메니저에서 자신을 제거하고 셧다운된다

 

 


ZooKeeper

  • 분산 환경을 관리하는 코디네이션 어플리케이션
  • 다수의 컴퓨터가 네트워크를 통해 통신하며 하나의 목적을 위해 서로간에 상호작용한다. 이때 마치 하나인 것처럼 동작하는 시스템처럼 합의를 이끌어내는 서비스
  • 고가용성 확보, 태스크 조율, 상태 추적, 일반적인 설정 파라미터 값 지정 수행

 

구성

  • 앙상블(Ensemble): 여러 주키퍼 서버로 이루어짐
  • 쿼럼(Quorum): 앙상블 데이터의 불일치를 방지
  • 주키퍼 데이터 모델: 분산 데이터 시스템 znode로 이루어짐

 

아키텍처

1. 클라이언트가 주키퍼 서버에 데이터를 업데이트한다. (Client B > Server D)
2. Leader 서버에서 이를 알린다.
3. Leader 서버에서는 Broadcast 형식으로 Follower 서버들에게 알린다.
4. 모든 서버에서 데이터가 일관된 상태로 유지된다.

 

znode

  • 데이터를 저장하기 위해 사용하는 가장 작은 단위의 데이터 저장 객체
  • 모든 데이터가 메모리에 저장되며, 최대 1MB로 제한적 → 설정 값이나 리소스 상태 등을 저장하는 매우 유용
  • Zookeeper는 여러 서버에 분산되어 있는 znode를 관리한다.
  • 종류
    • Persistent Node: 명시적으로 삭제되기 전까지 존재.
    • Ephemeral Node: 세션이 유지되는 동안 존재. 자식 노드를 가질 수 없다

 


Hive Metastore

  • Hive에서 발생되는 테이블과 파티션 등과 같은 모든 메타 정보가 저장된 곳
  • HDFS에서 하이브 테이블과 파티션은 파일을 포함하고 있는 디렉토리와 비슷한 개념으로 볼 수 있음
  • 관리형 테이블과 외부테이블을 모두 지원한다.

 

메타정보
"데이터에 관한 구조화된 데이터, 다른 데이터를 설명해주는 데이터"
속성정보라고도 불린다. 대량의 정보 가운데에서 찾고자하는 정보를 효율적으로 찾아내서 이용하기 위해 일정한 규칙에 따라 콘텐츠에 부여되는 데이터이다. 
HTML head, body 등의 태그가 구조화된 데이터의 가장 좋은 예이다. 뿐만 아니라 영화의 한 장면에서 배우의 데이터를 추출하거나, 축구 경기에서 골 장면만 추출하는 것도 메타데이터 기능이다.

 

 

메타 스토어 종류

메타 스토어의 종류

  1. 임베디드 메타스토어: 메타스토어가 로컬 장비에 파일로 생성됨. 하나의 프로세스만 메타스토어에 접근
  2. 로컬 메타스토어: 메타 데이터가 모두 별도의 데이터베이스에 저장
  3. 원격 메타스토어: 별도의 데이터베이스를 가지고, 별도의 JVM(Java Vertual Machine)에서 단독으로 동작

 

 


해당 내용은 다음 책을 참고했습니다.

엔터프라이즈 데이터 플랫폼 구축 

 

엔터프라이즈 데이터 플랫폼 구축 - YES24

자체 시스템부터 클라우드까지 엔터프라이즈 하둡과 빅데이터 플랫폼 운영, 구축, 설계의 모든 것빅데이터 기술에 대한 정보는 넘쳐나지만 이 모든 기술을 매끄럽게 연결해서 완벽한 엔터프라

www.yes24.com

 

참고
https://engkimbs.tistory.com/660

반응형