Hadoop 하둡
하둡은 신뢰성 있고, 확장성 있는 대용량 데이터의 처리를 위해 개발된 분산 컴퓨팅을 위한 오픈소스 프레임워크(open-source framework) 입니다.
- 2005년 당시 오픈소스 검색엔진 “Nutch”를 개발 중이던 '더그 커팅'이 대용량 데이터 처리를 위해 2004년 발표된 구글의 논문을 참조하여 구현.
- 야후 (Yahoo)의 재정지원으로 2006년부터 본격적으로 개발되었으며 현재는 아파치(Apache) 프로젝트로 분리되어 개발되고 있음
- Apache Hadoop(High-Availability Distributed Object-Oriented Platform)은 일반 상용 서버로 구성된 클러스터에서 사용할 수 있는 분산 파일시스템과 대량의 자료를 처리하기 위한 분산 처리 시스템을 제공하는 아파치 소프트웨어 재단의 오픈 소스 프레임워크이다. Java를 사용하여 개발됨
= 마스코트는 코끼리인데, 더그 커팅이 아들이 가지고 놀던 코끼리 장난감을 보고 지었다고 합니다.
(일부출처 : 나무위키 / https://namu.wiki/w/Hadoop)
하둡의 특징
GFS, MapReduce 소프트웨어 구현체
- 아파치 Top-Lever 프로젝트
- 하둡 코어는 Java, Python, C/C++ 등을 제공
하둡 History
• 2002 : 웹 검색엔진 너치프로젝트(Apache Nutch)가 개기 .
• 2003 : Google의 GFS (Google File System)
• 2004 : Google의 대규모 분산 프로그래밍 모델 ‘MapReduce’
• 2004 : 더그커팅이 검색엔진 오픈소스 개발 (Building Nutch) (너치 분산파일 시스템 + 맵리듀스)
• 2005 : Doug Cutting에 의해 Hadoop 오픈소스 개발 .
• (HDFS+MapReduce) • 2006 : Nutch project와 yahoo가 병합.
• 2008 : yahoo는 10,000개의 하둡 코어를 이용한 야후 서비스 발표.
하둡 에코시스템 구조
하둡 2.0의 구성
• Hadoop Common - 다른 하둡 모듈을 지원하는 유틸리티
• HDFS(Hadoop Distributed File System) - 애플리케이션 데이터에 고성능 접근을 지원하기 위한 분산 파일 시스템
• Hadoop YARN(Yet Another Resource Negotiator) - 잡 스케줄링과 클러스터 리소스를 관리하기 위한 모듈
• Hadoop MapReduce - 대용량 데이터의 병렬 처리를 위한 얀 기반 시스템
• Hbase - 컬럼 기반의 데이터베이스(column-oriented database)로 대규모 데이터에 빠른 속도로 접근할 수 있도록 하는 분산 데이터 베이스
하둡의 핵심 구성 요소인 HDFS와 맵리듀스 이외에 하둡 프로그램을 쉽게 처리 하기 위한 솔루션으로 피그(Pig)와 하이브(Hive)가 있음
• 피그(Pig) - 데이터를 적재·변환, 결과를 정렬하는 과정을 쉽게 처리하기 위해 만든 프로그램 언어
• 하이브(Hive) - 하둡을 데이터웨어하우스(DW)로 운영할 수 있게 해주는 솔루션
• 스쿱(Sqoop) - 관계형 데이터베이스로 데이터를 하둡으로 옮기는 도구
• 플럼(Flume) - 로그데이터를 하둡 분산파일 시스템으로 옮기는 도구
이 밖에 처리 과정을 조정하고 관리하는 주키퍼(Zookeeper)와 우지(Oozie)가 있습니다.
Hadoop 1.0의 단점
한 노드에서 실행할 수 있는 Map과 Reduce용 작업숫자가 제한됩니다. 이로 인해 노드에 여유 자원이 있더라고 그 자원을 활용하지 못하는 상황이 발생할 수 있습니다(자원 분배 및 작업 관리의 비효율성)
YARN
- 자원 관리, Job 상태 관리를 ResourceManager와 ApplicationMaster로 분리하여, 기존에 Job Tracker에 몰리던 병목을 제거합니다.
- MapReduce 외에 다양한 어플리케이션을 실행할 수 있으며, 어플리케이션마다 자원(CPU, 메모리)을 할당 받습니다.
* 참고 : 기존 1.x 버전에서는 Map Reduce와 HDFS로만 구현되어 있었고 Hadoop YARN의 ResourceManager 기능은 Map Reduce의 JobTracker라는 이름으로 존재하고 있었다. 또한 아직까지는 Java 8 이하의 버전과만 호환되며, Java 9부터는 모듈 시스템과의 호환성 때문에 문제가 발생할 수 있으니 참고해서 사용해야 합니다.
구글의 빅데이터 처리 기술 - 맵 리듀스
: 효율적인 데이터 처리를 위해 여러 대의 컴퓨터를 활용하는 분산 데이터 처리기술(Dean&Ghemawat, 2004).
맵(Map)과 리듀스(Reduce)의 두 과정으로 구성.
- Map 단계 : 대규모 데이터를 여러 대의 컴퓨터에 분산해 병렬적으로 처리해 새로운 데이터(중간 결과)를 만들어낸다.
- Reduce 단계 : 맵 단계를 통해 생성된 중간 결과물을 결합해 최종적으로 원하는 결과를 생산한다. 리듀스 과정 역시 여러 대의 컴퓨터를 동시에 활용하는 분산처리 방식을 적용
오픈소서 하둡 프로젝트
- 데이터 분산 저장
- 분산 환경 데이터 처리
- 네트워크 최대 활용
- 연관 데이터 조회
- 효율적인 백업 및 복구
- 분산 저장 활용
오픈소스 하둡의 핵심 기능
1) 분산저장
2) 분산병렬처리
- 오픈소스 하둡은 저장과 처리에 대한 기본적인 기능만 제공하기 때문에 데이터를 수집하고 분석하기에는 부족합니다.
- 하둡을 보완하기 위한 하둡 기반의 S/W들을 에코시스템이라고 부릅니다.
'Hadoop' 카테고리의 다른 글
비전공자 국비지원 빅데이터 하둡 / [실무로 배우는 빅데이터 기술] - 실습 (0) | 2022.09.07 |
---|---|
[Hadoop] WordCount 예제 (2) - 실행 (0) | 2022.09.02 |
[Hadoop] WordCount 예제 (1) 실습 (0) | 2022.09.01 |
HADOOP 설치 준비단계 CENTOS7 리눅스설치, 서버복제하기 (0) | 2022.08.31 |