터칭 데이터

하둡의 등장과 소개 본문

하둡과 Spark

하둡의 등장과 소개

터칭 데이터 2024. 1. 15. 16:04

 

 

 

하둡의 등장과 소개


기존 기술과는 전혀 다른 방식을 택함으로써 대용량 데이터 처리를 가능하게 해준 하둡에 대해 알아보자

 

 

 

 

 

 

 

 

 

 

 

 

 

하둡(Hadoop)의 등장

 

 

Doug Cutting이 구글랩 발표 논문들에 기반해 만든 오픈소스 프로젝트

2003년 The Google File System (분산에 대해)
2004년 MapReduce: Simplified Data Processing on Large Cluster (분산 파일의 처리에 대해)

 

처음 시작은 Nutch라는 오픈소스 검색엔진의 하부 프로젝트

위의 구글랩 논문 2개에 영감을 받아 탄생

하둡은 Doug Cutting의 아들의 코끼리 인형의 이름
2006년에 아파치 톱레벨 별개 프로젝트로 떨어져나옴

 

 

 

 

 

 

 

 

 

 

 

 

하둡(Hadoop)이란?

 

Hortonworks의 정의

An open source software platform for distributed storage and distributed
processing of very large data sets on computer clusters built from 
commodity hardware

 

분산 파일 시스템인 HDFS(Hadoop Distributed File System), 분산 컴퓨팅 시스템인 MapReduce

 

다수의 노드로 구성된 클러스터 시스템 (Cluster)

마치 하나의 거대한 컴퓨터처럼 동작
사실은 다수의 컴퓨터들이 복잡한 소프트웨어로 통제됨

 

 

 

 

 

 

 

 

 

 

 

하둡(Hadoop)의 발전

하둡 1.0은 HDFS위에 MapReduce라는 분산컴퓨팅 시스템이 도는 구조

MapReduce 위에서 다양한 컴퓨팅 언어들이 만들어짐

 

 

 

HDFS로 큰 데이터를 손실 없이 보관할 수 있게 되었고

MapReduce로 새로움 프로그래밍 패러다임으로 큰 데이터를 병렬처리할 수 있게 된 것입니다.

 

그런데 맵 리듀스가 어려워 생산성이 떨어진다는 문제가 있었고 이를 극복하고자 High-level 프로그래밍 언어인 피그, HIVE, presto 프레임워크들을 맵 리듀스 상에서 돌아가도록 만들었습니다.

 

 

 

 

 

 

하둡(Hadoop)의 발전

하둡 2.0에서 아키텍처가 크게 변경됨

그러다보니 다루기 힘든 맵 리듀스 대신에 조금 더 General한 분산 처리 시스템을 만들어 사용하는 것이 어떨까 라는 의견이 모여 YARN이 탄생하고 그 위에서 사람들이 원하는 하이레벨 형태의 분산 처리 시스템을 만들게 되었습니다.

 

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

 

 

HDFS1에서 HDFS2로 개선되고 YARN을 기존의 MapReduce 자리에 위치 시키고 맵 리듀스를 YARN의 위의 위치시킵니다. 피그와 HIVE, presto는 맵리듀스 위에서 돌아갈 수도 있고 YARN 위에서 돌아갈 수도 있습니다.

 

우리가 배울 Spark는 YARN에서 돌아가는 YARN 애플리케이션입니다.

 

 

 

 

 

 

 

 

 

 

 

 

분산 파일 시스템과 분산 처리 시스템에 대해

 

 

 

HDFS - 분산 파일 시스템

 

데이터를 블록단위로 나눠 저장

커다란 데이터를 블록 단위로 잘게 나누어 분산 파일 시스템을 실현

블록의 크기는 128 MB (디폴트)

 

블록 복제 방식 (Replication)

서버가 고장이 나 데이터가 유실 경우 되는 위험을 줄이기 위해 각 블록은 3 군데에 중복 저장됨

Fault tolerance를 보장할 수 있는 방식으로 이 블록들은 저장됨

 

하둡 2.0 내임노드 이중화 지원

내임 노드는 여러 데이터 노드들에 대한 정보를 보관하며 데이터 블록 등의 핵심 시스템이 유지 되도록 합니다.

만일 내임 노드가 동작하지 않으면 HDFS에 있는 정보들은 전부 쓸모가 없어지게 됩니다.

 

Secondary 내임노드라는 기능이 하둡에서 제공됩니다.

메인 내임 노드에서 문제가 발생하면

하둡 1.0에서는 세컨더리 내임노드를 참고해 매뉴얼하게 복구를 해야 하고

하둡 2.0에서는 자동으로 세컨더리 내임노드가 메인 내임노드 역할을 수행합니다.

 

이중화 (High Availability)

 

Active & Standby

    - Active 내임노드에 문제 발생시 Standby 내임노드가 실제 메인 내임노드 역할 수행
    - 둘 사이에 share edit log가 존재
Secondary 내임노드는 여전히 존재

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MapReduce: 분산 컴퓨팅 시스템

 

 

잡 트래커는 마스터(Master), 태스크 트래커는 슬레이브(Slave)

 

 

하둡 1.0

 

하나의 잡 트래커와 다수의 태스크 트래커로 구성됨

잡 트래커가 일을 나눠서 다수의 태스크 트래커에게 분배

태스크 트래커에서 병렬처리

 

MapReduce만 지원

제너럴한 시스템이 아님

 

 

 

 

 

 
 

'하둡과 Spark' 카테고리의 다른 글

맵리듀스 프로그래밍 소개  (0) 2024.01.15
YARN의 동작방식  (0) 2024.01.15
빅데이터 처리가 갖는 특징  (0) 2024.01.15
빅데이터의 정의와 예  (0) 2024.01.15
Intro  (0) 2024.01.15