[하둡] 핵심 개념

하둡

  • 분산 처리 프레임워크 중 하나
  • 크게 맵리듀스, HDFS, YARN 으로 구성

HDFS

  • 하둡에서 분산 파일 시스템
  • 파일을 블록 단위로 쪼개서 클러스터에 분산/복제하여 저장

블록

  • HDFS 가 가지는 파일 읽고 쓰는 최소 단위
  • HDFS 파일은 청크 단위로 쪼개져서 저장됨(청크=블록)
  • 탐색 비용을 최소화하기 위해 큰 단위 사용. 128MB
  • 파일크기가 블록크기보다 작을 경우 파일크기 만큼만 디스크를 점유
  • 실제 데이터 크기나 권한 정보같은 메타 정보는 따로 관리(네임스페이스)
  • 블록 고장을 위해 각 블록은 다수 머신에 복제됨(보통 3개)

네임노드, 데이터노드

  • HDFS 클러스터를 구성하는 마스터-슬레이브 구조
  • 네임노드는 파일시스템의 네임스페이스를 관리(파일시스템 트리와 각 파일들에 대한 메타정보)
  • 네임노드는 파일에 속한 블록들이 어느 데이터 노드에 있는지 알고 있음(네임스페이스)
  • 데이터 노드는 실질적인 워커 노드로 클라이언트나 네임 노드 요청이 있을때 블록을 저장하고 탐색
  • 네임 노드가 메타 정보를 가지고 있기 때문에 고장나면 망함. 장애 복구 기능은 필수
  • 이를 위해 로컬 디스크와 NFS 에 동시에 백업하거나, 세컨더리 네임 노드 구성함

세컨더리 네임노드 역할

  • 에딧로그가 너무 커지지 않도록 주기적으로 네임 스페이스 이미지와 병합
  • 주 네임노드 장애를 대비해 네임 스페이스 이미지 복제

블록 캐싱

  • 빈번하게 접근되는 블록을 오프힙이라는 데이터노드 메모리에 캐싱하는 것
  • 블록 뿐만 아니라 파일 단위로도 가능
  • 이를 이용해 읽기 성능을 높일 수 있음

HDFS 페더레이션

  • 여러 네임노드들이 네임스페이스 일부를 나누어 관리하는 방식
  • 예를들면, 누구는 /user 관리 또 누구는 /share 관리

하둡 HA

  • 하둡 2에서 등장
  • active##standby 구조로, 문제가 생기면 대기 네임노드가 활성화되어 처리
  • 네임 노드들은 반드시 공유 스토리지 사용
  • 대기 네임노드가 보조 네임노드의 역할을 수행. 네임스페이스 병합 및 주기적인 저장

yarn

  • https://eyeballs.tistory.com/95
  • 클러스터 리소스 관리
  • 하둡 클러스터에는 다양한 플랫폼이 이용될 수 있음(spark, mr, hive 등). 이에 대한 관리를 yarn 이 함
  • 기존의 하둡에 있는 Job Tracker 가 리소스를 관리하기 때문에 다른 컴퓨팅 클러스터와는 연동이 어려웠음
  • 그래서 job tracker의 자원 관리 부분을 떼서 yarn 이 담당하게 됨

핵심은 리소스 관리와 노드 관리

  • 리소스 매니저: 마스터 서버 개념. 전체 리소스 관리
  • 노드 매니저: 워커 서버 개념. 사용자가 실행하는 컨테이너 감시

erasure coding

-하둡 3에서 등장 -기본적으로 블록을 3개 복사하는데 이게 자원 낭비가 심하니, parity code 를 추가해서 효율적으로 복구


© 2021. All rights reserved.

Powered by Hydejack v9.1.4