분산처리/빅데이터-하둡, 하이브로 시작하기

Hadoop

busy맨 2023. 7. 11. 15:51

1. Hadoop(하둡)

  • 고가용성 분산형 객체 지향적 플랫폼(High Availability Distributed Object Oriented Platform)
  • 객체 지향적 작업을 병렬 분산하여 고가용성을 확보

  • Apache Hadoop은 오픈소스, Java 기반 소프트웨어 플랫폼으로 빅데이터 애플리케이션용 데이터 처리와 스토리지를 관리
  • 하둡 플랫폼은 컴퓨터 클러스터 내 여러 노드에 걸쳐 하둡 빅데이터와 분석 작업을 분배하며,
    그 과정에서 작업을 병렬식으로 실행 가능한 작은 크기의 워크로드로 분해
  • 구조적 및 비구조적 데이터를 처리할 수 있으며 단 한 대의 서버에서 시스템 수천 대 규모로 안정적으로 확장

2. 하둡 데이터베이스

  • 하둡은 오픈소스 프레임워크로써, 실시간으로 엄청난 양의 데이터를 동시에 처리하는 것이 목적
  • 사용자에게 다양한 데이터베이스 유형에 대한 처리 솔루션을 제공
  • 대규모 병렬 컴퓨터 처리를 활용하여 단시간에 방대한 데이터를 처리
    • Apache HBase와 같은 여러 데이터베이스는 수천 개의 상용 서버에 저장된 데이터 노드 클러스터에 흩어져 있음
  • 데이터는 HDFS에 저장
    • 데이터를 비구조적, 반구조적, 구조적 형식으로 저장 가능
    • 관계형 데이터베이스로는 간주 X

3. 하둡의 영향

  • 하둡은 빅데이터 분야에 중대한 발전으로 클라우드 데이터 레이크의 기초 토대로 인정받음
  • 상용 데이터 웨어하우스 솔루션과 폐쇄형 데이터 형식에 실질적 대안
    • 방대한 데이터를 저장, 처리할 능력을 신속히 확보
    • 컴퓨팅 파워 증가
    • 내결함성
    • 데이터 관리 유연성
    • DW에 비해 저렴한 비용
    • 확장성

4. 하둡의 동작

  1.  사용자가 데이터와 프로그램을 HDFS에 제출
  2.  하둡 MapReduce가 입력/출력 데이터를 처리하고 변환
  3. YARN이 클러스터에 작업을 분산
  • 하둡 프레임워크 자체는 Java를 기반으로 동작
  • 하둡 프로그램은 Python, C++등 다양한 프로그래밍 언어로 작성 가능

5. 하둡 에코시스템

  • 코어 모듈과 관련 하위 모듈을 아우르는 말
  • 코어 하둡 모듈
    • 하둡을 이루는 가장 기초적인 기본요소 
    • HDFS(Hadoop Distributed File System)
      • Java 기반 시스템의 일종
      • 클러스터 내 여러 노드에 걸쳐 대규모 데이터 세트를 내결함성 있는 방식으로 저장
        • 내결함성: 시스템의 일부 구성 요소가 작동하지 않더라도 계속 작동할 수 있는 기능
    • YARN(Yet Another Resource Negotiator)
      • 클러스터 리소스 관리
      • 작업 계획
      • 작업 예약
    • MapReduce
      • 프로그래밍 모델 겸 대규모 데이터 세트의 병렬식 처리를 위해 사용되는 빅데이터 처리 엔진
        • Apache Spark 등과 유사
    • Hadoop Common
      • Hadoop 모듈을 지원하는 여러 라이브러리와 유틸리티를 총망라한 일련의 서비스 제공

6. HDFS

  • 다양한 구조적 및 비구조적 데이터 노드에 걸쳐 대량의 데이터 세트를 관리
  • 메타데이터를 로그 파일의 형태로 보관
  • 구성 요소
    • NameNode
      • HDFS의 마스터 노드
      • 파일 시스템의 네임스페이스를 관리하고, 파일들에 대한 클라이언트 접근을 제어
      • 블록 번호와 위치 등과 같은 메타데이터 저장
      • 파일과 디렉토리 형태로 구성되며 파일 이름 지정, 종료, 열기 등의 파일 시스템 명령을 실행
    • DataNode
      • HDFS의 슬레이브 노드
      • 클라이언트가 요청한 읽기 및 쓰기 함수를 실행하면서 실제 데이터 또는 블록을 저장
      • NameNode의 명령에 따라 복제본 생성, 삭제 및 복제를 담당
      • 두 개의 파일 시스템으로 구성
        • 하나는 데이터에 사용, 나머지 하나는 블록 메타데이터 저장

 

7. MapReduce

  • Hadoop 에코시스템의 핵심 처리 구성 요소
  • 방대한 양의 구조적, 비구조적 데이터를 처리할 때 애플리케이션을 쉽게 작성할 수 있는 프레임워크 제공
  • 클라이언트의 작업 일정을 처리
  • 단계 구성
    • Map
      • 데이터 세트가 key-value로 나뉘는 다른 데이터 세트로 변환
    • Reduce
      • InputFormat 클래스를 통해 출력을 변환

 

8. YARN

  • 하둡의 리소스 관리 계층으로 하둡 프레임워크의 운영 체제 역할
  • 작업 시퀀스 예약과 처리, 실행
  • 사용자는 동일한 클러스터에서 필요한 만큼 여러 애플리케이션 실행 가능

 

9. 하둡의 장점

  1. 확장성
    • 분산형 환경에서 작동하기 때문에 기존 시스템보다 확장성이 뛰어남
  2. 복원력
    • 하둡 클러스터 내 노드에 저장된 데이터는 클러스터의 다른 노드에도 복제되어 오류 가능성에 대비
    • 노드 한 개가 다운되더라도 클러스터 내에 데이터 백업본이 준비되어 있는 내결함성 보장
  3. 유연성
    • 기존 관계형 데이터베이스 관리 시스템과는 달리 형식에 구애받지 않고 데이터 저장

 

10. 하둡 아키텍처의 문제

  1. 복잡함
    • 하둠은 저수준 Java 기반 프레임워크이므로 사용자가 다루기에 복잡
    • 상당한 수준의 전문 지식과 리소스가 있어야 설치, 유지보수가 가능
  2. 성능
    • 하둡은 디스크로부터 읽기, 쓰기를 자주하여 연산 수행
    • 메모리에서 처리하는 다른 프레임워크에 비해 시간이 오래 걸리고 비효율

'분산처리 > 빅데이터-하둡, 하이브로 시작하기' 카테고리의 다른 글

2-2) HDFS  (0) 2023.07.16
2-1) 하둡이란?  (0) 2023.07.16
1-3) 빅데이터 에코시스템  (0) 2023.07.16
1-2) 빅데이터 처리 단계  (0) 2023.07.13
1-1) 빅데이터  (0) 2023.07.13