Just Fighting
[Hadoop] 하둡의 기본 개념 본문
하둡이란?
아팟치 하둡은 대규모 검색 색인을 구축하려고 만든 자바기반의 오픈 소스 분산 컴퓨팅 플랫폼. 후에 다방면으로 활용되고 개선되면서 대규모 원시 데이터를 처리하고 분석하는 데이터 센터 운영 시스템의 핵심 소프트웨어 생태계를 이룸.
하둡의 핵심기술
- 분산 파일 시스템
- 리소스 관리자와 스케줄러
- 분산 데이터 처리 프레임워크
HDFS
하둡 분산 파일 시스템. 하둡의 핵심 파일 시스템.
데이터의 중복 저장이란 개념을 바탕으로 한 대규모 분산파일 시스템.
일반적인 파일 시스템을 가진 여러 노드를 묶어 하나의 분산 파일 시스템을 구축하도록 설계됨.
YARN
가장 효율적인 방법으로 계산 리소스를 할당하고 사용자 애플리케이션을 스케줄링하는 시스템
스케줄링과 리소스 관리. 데이터 지역성 극대화.
계산량 많은 애플리케이션이 리소스 독점하지 않도록 제어
클러스터의 리소스를 컨테이너로 관리해 분산 시스템을 원활하게 운영하고, 클러스터의 리소스를 다수의 애플리케이션에 공평한 방식으로 공유한다.
맵리듀스
하둡이 맨 처음에 지원한 데이터 처리 모델
간단한 작업을 반복해 처리할 때 사용하는 프로그래밍 모델
반복이 많은 작업에 적합하지 않음.
(YARN에 기반한 아파치 데즈, 아파치 스파크, 아파치 플링크 등의 처리엔진이 하둡의 기능을 더욱 풍부하게 확장함)
맵리듀스의 병렬 처리 모델
문제를 맵(map) 단계, 셔플(shuffle) 단계, 리듀스(reduce) 단계로 나누어 수행
맵 단계에서는 입력 데이터가 클러스터에서 병렬로 처리됨.
이 맵 단계를 수행하는 매퍼(mapper) 함수는 원시 데이터를 키와 값의 쌍으로 변환
변환된 데이터는 키를 기준으로 정렬되어 버킷으로 셔플링 됨. (키가 같으면 같은 리듀서에게 전달됨)
리듀서는 모든 키의 값을 처리하면 결과를 HDFS나 다른 영구 저장소에 저장
아파치 스파크
인메모리 데이터 처리 엔진
데이터 과학에서 자주 등장하는 반복 연산에 더 적합한 개념과 기능 제공
기본척인 분산 처리 기능 + 스파크SQL, MLlib, 스트리밍 등 여러 구성요소
기본 데이터 구조는 객체의 분산 시퀀스인 RDD로 RAM에 저장되면서 자동으로 장애를 극복하는 메커니즘 지원
관계형 연산자 제공
데이터를 분산 메모리로 캐싱할 수 있어 빠른 연산과 저지연 응답 속도 달성
메모리에 올려 둔 데이터셋을 반복적으로 사용할 수 있어 머신 러닝 알고리즘에서도 더 빠른 속도로 대규모 데이터 활용 가능
참고 : 오퍼 멘델리비치 외 2명, 「하둡과 스파크를 활용한 실용 데이터 과학」, 이춘오, 길벗(2017)
'Big Data' 카테고리의 다른 글
[Hadoop] 디렉터리 생성 & 파일 올리기 (0) | 2022.03.11 |
---|---|
[Spark] pyspark로 hdfs 데이터 불러오기 (0) | 2022.02.24 |
[Hadoop] 윈도우에서 하둡 설치 & 실행하기 (0) | 2022.02.19 |
[Spark] 스파크의 기본 개념 (0) | 2022.02.17 |
[Spark] pyspark 설치 & 실행하기 (0) | 2022.02.15 |