하둡,spark

하둡 기초

데이터왕 2024. 1. 15. 17:22

하둡 등장배경

  1. The Google File System 논문 에서 분산파일 시스템에 관한 내용
  2. MapReduce: Simplified Data Processing on Large Cluster 에서 분산컴퓨팅 시스템 제시
  3. Nutch라는 오픈소스 검색엔진의 하부 프로젝트로 구체적인 시작
  4. 하둡의 등장:  2006년에 아파치 톱레벨 별개 프로젝트로 떨어져나옴

하둡이란?

1. 하둡은 커뮤디티 하드웨어를 활용한 대규모 데이터를 분산 저장하고 처리하는 오픈 소스 소프트웨어 플랫폼.

2. 다수의 노드로 구성된 클러스터 시스템이 마치 하나의 거대한 컴퓨터처럼 동작
3. Hadoop Distributed File System (HDFS)를 통해 데이터를 분산 저장하며, MapReduce를 사용하여 분산 컴퓨팅을 수행.
4. 비용 효율적인 하드웨어를 활용하여 안정적으로 데이터를 저장하고, 병렬 처리를 통해 대용량 데이터셋을 효과적처리.
5. 다양한 산업 분야에서 대용량 데이터 처리 및 분석에 활용

 

하둡의 발전

  • 하둡 1.0은 HDFS위에 MapReduce라는 분산컴퓨팅 시스템이 도는 구조
  • MapReduce 위에서 pig, hive, presto 등 다양한 컴퓨팅 언어들이 만들어짐

  • 하둡 2.0 :  하둡은 YARN이란 이름의 분산처리 시스템위에서 동작하는 애플리케이션이 됨
  • Spark은 YARN위에서 애플리케이션 레이어로 실행

 

HDFS-분산파일 시스템

  • 데이터를 블록단위로 나눠 저장(블록 크기는 128MB)
  • 이 블록들은 Fault tolerance를 보장하기 위해 각각 3군데에 중복으로 저장됨
    + Fault tolerance : 시스템이 하나 이상의 컴포넌트나 서비스의 장애 또는 실패에 대해 견딜 수 있는 능력
  • 하둡 2.0에서는 내임노드의 이중화가 지원되며, Active와 Standby 두 노드가 존재
    + Active에 문제가 생기면 Standby가 내임노트 역할을 함
  • 두 노드 사이에는 공유된 edit log가 존재하며, 이를 통해 지속적인 데이터 일관성을 유지
  • 또한, Secondary 내임노드도 여전히 존재하여 데이터의 신뢰성과 안정성을 제공

 

MapReduce : 분산 컴퓨팅 시스템

  • 하둡 1.0 버전에서는 하나의 잡 트래커(Job Tracker)와 다수의 태스크 트래커(Task Tracker)로 구성되어 있다.
  • 잡 트래커는 작업을 분할하고 다수의 태스크 트래커에게 할당. 각 태스크 트래커에서는 병렬로 작업을 처리.
  • 이 시점의 하둡은 MapReduce만을 지원하며, 제너럴한(일반적인) 시스템이 아니었습니다.
  • 다시 말해, 하둡 1.0은 주로 대용량 데이터 처리를 위한 특화된 환경으로 사용되었으며, 일반적인 용도의 다양한 작업을 수행하는 데에는 적합하지 않았습니다.