맨위로가기

아파치 하둡

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

아파치 하둡은 2006년 더그 커팅과 마이크 캐퍼렐라가 개발한 오픈 소스 분산 컴퓨팅 프레임워크이다. 구글의 분산 파일 시스템 논문을 기반으로 개발되었으며, 대용량 데이터의 저장 및 처리에 특화되어 있다. 하둡은 HDFS(하둡 분산 파일 시스템), YARN(Yet Another Resource Negotiator), MapReduce 등의 모듈로 구성된다. HDFS는 대용량 파일을 여러 기기에 분산 저장하고, YARN은 클러스터 자원 관리 및 작업 스케줄링을 담당하며, MapReduce는 데이터 처리 프로그래밍 모델을 제공한다. 야후, 페이스북 등에서 활용되었으며, 로그 분석, 기계 학습, 데이터 마이닝 등 다양한 분야에서 사용된다. 하둡은 대규모 데이터 처리에 강점을 가지지만, 데이터 양이 적은 경우에는 효율성이 떨어질 수 있다는 한계가 있다.

더 읽어볼만한 페이지

  • 빅 데이터 제품 - 빅쿼리
    빅쿼리는 구글의 데이터 분석 서비스로, 드레멜을 기반으로 수조 행의 데이터에 대한 빠른 쿼리를 가능하게 하며, 데이터 관리, 쿼리 실행, 서비스 통합, 접근 제어, 기계 학습 기능을 제공한다.
  • 빅 데이터 제품 - SAP HANA
    SAP HANA는 SAP SE에서 개발한 인메모리, 컬럼 지향 데이터베이스 관리 시스템으로, 빠른 데이터 처리 속도를 기반으로 온라인 트랜잭션 처리와 온라인 분석 처리를 단일 플랫폼에서 지원하며, SAP S/4HANA 등 다양한 SAP 애플리케이션 실행에 사용되고 클라우드 및 온프레미스 환경에 배포 가능하다.
  • 분산 파일 시스템 - 제로넷
    제로넷은 중앙 서버 없이 P2P 방식으로 운영되어 검열에 저항성을 가지며 사용자가 직접 콘텐츠를 공유할 수 있는 분산 네트워크 플랫폼으로, 웹사이트 개발이 가능하고 제로넷-컨서번시 포크를 통해 기능 추가 및 새로운 P2P 네트워크로의 마이그레이션이 진행 중이다.
  • 분산 파일 시스템 - MapR
    MapR은 아파치 하둡 프로젝트에 기여한 미국의 비상장 회사로, 컨버전스 데이터 플랫폼을 주요 제품으로 제공하며 휴렛 팩커드 엔터프라이즈(HPE)에 인수되었다.
  • 클라우드 컴퓨팅용 자유 소프트웨어 - 쿠버네티스
    쿠버네티스는 컨테이너화된 애플리케이션을 자동으로 배포, 스케일링, 관리하는 오픈 소스 시스템으로, 구글의 Borg 시스템에서 영감을 받아 설계되었으며 파드, 서비스 등의 기능을 제공하여 클라우드 네이티브 환경에서 중요한 역할을 한다.
  • 클라우드 컴퓨팅용 자유 소프트웨어 - 오픈스택
    오픈스택은 랙스페이스와 NASA가 2010년 7월에 시작한 오픈 소스 기반 클라우드 컴퓨팅 플랫폼으로, 표준 하드웨어에서 클라우드 서비스를 구축 및 실행하고 퍼블릭 클라우드와 프라이빗 클라우드 모두를 아우르는 범용적인 클라우드 환경 구축을 목표로 다양한 운영체제와 기업의 지원을 받으며 발전하고 있다.
아파치 하둡 - [IT 관련 정보]에 관한 문서
기본 정보
아파치 하둡 로고
아파치 하둡 로고
개발자더그 커팅, 마이크 카파렐라
발표일2006년 4월 1일
최신 안정화 버전2.10.x: 2.10.2 (2022년 5월 31일)
3.4.x: 3.4.0 (2024년 3월 17일)
저장소Hadoop Repository
프로그래밍 언어자바
운영체제크로스 플랫폼
장르분산 파일 시스템
라이선스아파치 라이선스 2.0
웹사이트아파치 하둡 공식 웹사이트
POSIX 준수 여부비POSIX 준수
추가 정보
아파치 하둡pron

2. 역사

하둡은 더그 커팅과 마이크 캐퍼렐라가 2006년에 개발하였다.[82] 당시 커팅은 야후에서 일하고 있었으며[83], 이후 하둡은 아파치 재단으로 넘어가 공개 소프트웨어로 개발되고 있다. 하둡은 구글의 분산 파일 시스템(GFS) 논문이 공개된 후, 그 구조에 대응하는 체계로 개발되었다. 하둡의 로고는 노란색 아기 코끼리로 표시하는데, 이는 하둡의 개발자인 더그 커팅이 자신의 아이가 가지고 놀던 장난감 코끼리의 이름을 따서 하둡이라는 이름을 지었기 때문이다.[84] 코끼리는 빅 데이터를 상징하는 동물이다. 2011년 오픈 소스 아파치 하둡(Apache Hadoop) 사업을 위해 야후에서 분사한 기업의 이름을 지을 때도, 코끼리가 주인공인 동화에 나오는 코끼리 이름인 호튼(Horton)을 따와서 호튼웍스(Hortonworks)라고 회사명을 지었다.

더그 커팅과 마이크 카페렐라에 따르면 하둡의 기원은 2003년 10월에 발표된 구글 파일 시스템 논문이었다.[16][17] 이 논문은 구글에서 "MapReduce: 대규모 클러스터에서 단순화된 데이터 처리"라는 또 다른 논문을 낳았다.[18] 개발은 아파치 너치 프로젝트에서 시작되었지만 2006년 1월에 새로운 하둡 하위 프로젝트로 이전되었다.[19]

2006년 3월, 오웬 오말리가 하둡 프로젝트에 처음으로 기여한 커미터였다.[21]

2. 1. 개발 배경

하둡은 2006년 더그 커팅과 마이크 캐퍼렐라가 개발하였다.[82] 당시 커팅은 야후에서 일하고 있었으며[83], 이후 하둡은 아파치 재단으로 넘어가 공개 소프트웨어로 개발되고 있다. 하둡은 구글의 분산 파일 시스템(GFS) 논문과 맵리듀스(MapReduce) 논문을 기반으로 개발되었다.

하둡의 로고는 노란색 아기 코끼리인데, 이는 개발자인 더그 커팅이 자신의 아이가 가지고 놀던 장난감 코끼리의 이름을 따서 하둡이라는 이름을 지었기 때문이다.[84] 코끼리는 빅 데이터를 상징하는 동물로 여겨진다. 2011년 야후는 오픈 소스 아파치 하둡 사업을 위해 호튼웍스를 분사했는데, 회사 이름은 코끼리가 주인공인 동화에 나오는 코끼리 이름인 호튼(Horton)에서 따왔다.

하둡의 공동 창립자인 더그 커팅과 마이크 카페렐라에 따르면, 하둡은 2003년 10월에 발표된 구글 파일 시스템 논문에서 기원했다.[16][17] 이 논문은 구글의 "MapReduce: 대규모 클러스터에서 단순화된 데이터 처리"라는 논문을 낳았다.[18] 개발은 아파치 너치 프로젝트에서 시작되었지만, 2006년 1월에 새로운 하둡 하위 프로젝트로 이전되었다.[19] 당시 야후!에서 일하던 더그 커팅은 아들의 장난감 코끼리에서 이름을 따왔다.[20] 너치에서 분리된 초기 코드는 HDFS에 약 5,000줄, MapReduce에 약 6,000줄로 구성되었다.

2006년 3월, 오웬 오말리가 하둡 프로젝트에 처음으로 기여한 커미터였다.[21] 하둡 0.1.0은 2006년 4월에 출시되었다.[22] 하둡 분산 파일 시스템에 대한 첫 번째 설계 문서는 2007년 드루바 보르타쿠르가 작성했다.[24]

2. 2. 버전 역사

2006년 4월, 하둡 0.1.0이 출시되었다.[22] 초기에는 HDFS에 약 5,000줄, MapReduce에 약 6,000줄의 코드로 구성되었다. 2011년 12월, 하둡 1.0이 출시되었다.[25] 2012년에는 하둡 2.0이 발표되었는데, 여기에는 YARN(Yet Another Resource Negotiator)이 도입되어 클러스터 자원 관리 및 작업 스케줄링 기능이 강화되었다. 2017년 12월, 하둡 3.0이 출시되어,[26] 삭제 코딩(Erasure Coding)을 통한 스토리지 오버헤드 감소, GPU 하드웨어 지원 등 여러 기능이 개선되었다.

하둡의 버전 역사는 다음과 같다.

버전최초 출시일최신 버전출시일
0.100.10.12007-01-11
0.110.11.22007-02-16
0.122007-03-020.12.32007-04-06
0.132007-06-040.13.12007-07-23
0.142007-09-040.14.42007-11-26
0.152007-10-290.15.32008-01-18
0.162008-02-070.16.42008-05-05
0.172008-05-200.17.22008-08-19
0.182008-08-220.18.32009-01-29
0.192008-11-210.19.22009-07-23
0.202009-04-220.20.205.02011-10-17
0.212011-05-110.21.0
0.222011-12-100.22.0
0.232011-11-110.23.112014-06-27
1.02011-12-271.0.42012-10-12
1.12012-10-131.1.22013-02-15
1.22013-05-131.2.12013-08-01
2.02012-05-232.0.6-alpha2013-08-23
2.12013-08-252.1.1-beta2013-09-23
2.22013-12-112.2.0
2.32014-02-202.3.0
2.42014-04-072.4.12014-06-30
2.52014-08-112.5.22014-11-19
2.62014-11-182.6.52016-10-08
2.72015-04-212.7.72018-05-31
2.82017-03-222.8.52018-09-15
2.92017-12-172.9.22018-11-19
2.102019-10-292.10.22022-05-31[25]
3.02017-12-13[26]3.0.32018-05-31[27]
3.12018-04-063.1.42020-08-03[28]
3.22019-01-163.2.42022-07-22[29]
3.32020-07-143.3.62023-06-23[30]
3.42024-03-173.4.02024-07-17[31]


3. 아키텍처

아파치 하둡은 크게 네 가지 주요 모듈로 구성된다.


  • '''하둡 공통(Hadoop Common)''': 다른 하둡 모듈에 필요한 라이브러리와 유틸리티를 포함한다.
  • '''하둡 분산 파일 시스템(HDFS)''': 상용 머신에 데이터를 저장하는 분산 파일 시스템으로, 클러스터 전체에서 매우 높은 집계 대역폭을 제공한다.
  • '''YARN(Yet Another Resource Negotiator)''': 클러스터에서 컴퓨팅 리소스를 관리하고 사용자의 애플리케이션을 예약하는 플랫폼이다.
  • '''맵리듀스(MapReduce)''': 대규모 데이터 처리를 위한 MapReduce 프로그래밍 모델의 구현이다.
  • '''하둡 오존(Hadoop Ozone)''': 2020년에 도입된 하둡을 위한 객체 저장소이다.


"하둡"이라는 용어는 이러한 기본 모듈뿐만 아니라, 아파치 피그, 아파치 하이브, 아파치 HBase 등 하둡 생태계를 이루는 다양한 추가 소프트웨어 패키지를 통칭하기도 한다.[12]

하둡의 핵심 구성 요소는 구글의 MapReduce 및 구글 파일 시스템 논문에서 영감을 받아 개발되었다.[14] 하둡 프레임워크는 대부분 자바로 작성되었으며, 일부는 C로, 명령줄 유틸리티는 셸 스크립트로 작성되었다.

하둡은 ''하둡 공통(Hadoop Common)'' 패키지를 통해 파일 시스템 및 운영 체제 수준의 추상화를 제공한다. 또한 맵리듀스 엔진과 하둡 분산 파일 시스템(HDFS)을 포함한다. 하둡 공통 패키지에는 하둡을 시작하는 데 필요한 Java 아카이브(JAR) 파일 및 스크립트가 들어있다.

하둡은 작업의 효율적인 스케줄링을 위해 모든 하둡 호환 파일 시스템에 위치 인식 기능을 제공한다. 이는 작업자 노드가 위치한 랙(네트워크 스위치)의 이름을 통해 데이터를 가진 노드에서 코드를 실행하거나, 동일한 랙/스위치에서 실행하여 네트워크 트래픽을 줄이는 데 사용된다. HDFS는 여러 랙에 데이터를 복제하여 랙 정전이나 스위치 고장 시에도 데이터를 보존한다.[33]

작은 하둡 클러스터는 단일 마스터와 여러 작업자 노드로 구성된다. 마스터 노드는 Job Tracker, Task Tracker, NameNode, DataNode로 구성된다. 슬레이브 또는 ''작업자 노드''는 DataNode와 TaskTracker 역할을 모두 수행하지만, 데이터 전용 및 컴퓨팅 전용 작업자 노드를 가질 수도 있다.[34] 하둡은 자바 런타임 환경(JRE) 1.6 이상이 필요하며, 클러스터 노드 간에 Secure Shell(SSH) 설정이 필요하다.[35]

대규모 클러스터에서는 HDFS 노드가 전용 NameNode 서버와 보조 NameNode를 통해 관리된다. 보조 NameNode는 파일 시스템 손상 및 데이터 손실을 방지하기 위해 네임노드 메모리 구조의 스냅샷을 생성한다. 독립형 JobTracker 서버는 노드 간 작업 스케줄링을 관리한다.

2015년 5월 현재, HDFS 외에도 Amazon S3, 오픈스택 Swift, Microsoft Azure, FTP, HTTP, HTTPS를 통해 액세스 가능한 파일 시스템을 지원한다.

3. 1. 하둡 분산 파일 시스템 (HDFS)

'''하둡 분산 파일 시스템'''(HDFS, Hadoop distributed file system)은 하둡 프레임워크를 위해 자바 언어로 작성된 분산 확장 파일 시스템이다. HDFS는 여러 기계에 대용량 파일들을 나눠서 저장하며, 데이터를 여러 서버에 중복해서 저장함으로써 데이터 안정성을 확보한다.[88] 따라서 호스트에 RAID 저장장치를 사용하지 않아도 된다.

HDFS는 마스터/슬레이브(master/slave) 구조를 가지며, 하나의 네임노드와 여러 데이터노드로 구성된다. 네임노드는 파일 시스템을 관리하고 클라이언트의 접근을 통제하는 마스터 서버 역할을 한다. 파일 및 디렉터리의 메타데이터를 관리하고, 파일과 디렉터리의 읽기(open), 닫기(close), 이름 바꾸기(rename) 등의 기능을 수행하며, 데이터노드와 블록들의 매핑을 결정한다. 데이터노드는 클러스터의 각 노드에 하나씩 존재하며, 실제 데이터를 블록 단위로 저장하고 클라이언트의 읽기(read), 쓰기(write) 요청을 처리한다. 또한 네임노드의 지시에 따라 블록을 생성, 삭제, 복제하는 기능도 수행한다.

네임노드와 데이터노드는 GNU/Linux OS를 기반으로 하는 상용 머신에서 실행되도록 설계되었다. HDFS는 자바 언어를 사용하므로 자바가 동작하는 어떠한 컴퓨터에서나 네임노드나 데이터노드 소프트웨어를 실행할 수 있다.

HDFS는 다음과 같은 다섯 가지 주요 서비스로 구성된다.

서비스 종류설명
네임노드파일을 추적하고, 파일 시스템을 관리하며, 내부에 저장된 모든 데이터의 메타데이터를 관리한다. 클라이언트와 직접 통신한다.
데이터노드데이터를 블록으로 저장하는 슬레이브 노드이다. 클라이언트가 읽고 쓸 수 있도록 실제 데이터를 HDFS에 저장한다. 3초마다 네임노드에 하트비트 메시지를 보내 살아있음을 알린다.
세컨더리 네임노드네임노드에 있는 파일 시스템 메타데이터의 검사점을 처리하는 보조 노드이다.
작업 추적기클라이언트로부터 MapReduce 실행 요청을 받는다. 네임노드와 통신하여 처리할 데이터의 위치를 ​​파악한다.
작업 추적기작업 추적기의 슬레이브 노드이며, 작업 추적기에서 작업을 받아 코드를 파일에 적용한다. 이 과정을 매퍼라고 한다.[39]



HDFS는 여러 머신에 걸쳐 대용량 파일(주로 기가바이트에서 테라바이트 범위)[40]을 저장하고, 여러 호스트에 데이터를 복제하여 안정성을 확보한다. 기본 복제 값은 3으로, 데이터는 세 개의 노드(두 개는 동일한 랙, 하나는 다른 랙)에 저장된다. 데이터 노드는 서로 통신하여 데이터를 재분산하고, 복사본을 이동하며, 데이터 복제를 높게 유지한다.

2012년 5월, HDFS에 고가용성 기능이 추가되어,[42] 네임노드에 장애가 발생하면 수동으로 백업 네임노드로 전환할 수 있게 되었다. 또한 자동 장애 조치 기능도 개발이 시작되었다.

HDFS 파일 시스템에는 ''세컨더리 네임노드''가 포함되어 있는데, 이는 기본 네임노드가 오프라인 상태가 될 때 백업 네임노드로 오해될 수 있는 용어이다. 세컨더리 네임노드는 정기적으로 기본 네임노드에 연결하여 디렉토리 정보의 스냅샷을 생성하고, 이를 로컬 또는 원격 디렉토리에 저장한다. 이러한 검사점 이미지는 실패한 네임노드를 다시 시작할 때 사용되어, 전체 파일 시스템 작업 저널을 재생할 필요 없이 로그를 편집하여 최신 디렉토리 구조를 생성할 수 있게 한다.

3. 1. 1. HDFS의 특징

HDFS는 다음과 같은 시스템에서 잘 동작하는 것을 목표로 한다.[88]

  • '''하드웨어 오동작''': 하드웨어 수가 많아지면 그중 일부 하드웨어가 오동작하는 것은 예외 상황이 아니라 항상 발생하는 일이다. 따라서 이런 상황에서 빨리 자동으로 복구하는 것은 HDFS의 중요한 목표다.
  • '''스트리밍 자료 접근''': 범용 파일 시스템과 달리 반응 속도보다는 시간당 처리량에 최적화되어 있다.
  • '''큰 자료 집합''': 한 파일이 기가바이트테라바이트 정도의 크기를 갖는 것을 목적으로 설계되었다. 자료 대역폭 총량이 높고, 하나의 클러스터에 수백 개의 노드를 둘 수 있다. 하나의 인스턴스에서 수천만여 파일을 지원한다.
  • '''간단한 결합 모델''': 한 번 쓰고 여러 번 읽는 모델에 적합한 구조이다. 파일이 한 번 작성되고 닫히면 바뀔 필요가 없는 경우를 위한 것이다. 이렇게 함으로써 처리량을 극대화할 수 있다.
  • '''자료를 옮기는 것보다 계산 작업을 옮기는 것이 비용이 적게 든다''': 자료를 많이 옮기면 대역폭이 많이 들기 때문에 네트워크 혼잡으로 인하여 전체 처리량이 감소한다. 가까운 곳에 있는 자료를 처리하게 계산 작업을 옮기면 전체적인 처리량이 더 높아진다.
  • '''다른 종류의 하드웨어와 소프트웨어 플랫폼과의 호환성''': 서로 다른 하드웨어와 소프트웨어 플랫폼들을 묶어 놓아도 잘 동작한다.

3. 2. YARN (Yet Another Resource Negotiator)

Yet Another Resource Negotiator (YARN)는 아파치 하둡 클러스터의 리소스 관리 및 작업 스케줄링을 담당한다. 하둡 1계열까지는 하둡을 구성하는 모듈이 HDFS와 MapReduce 두 가지였지만, 다음과 같은 과제를 달성하기 위해 YARN이 개발되어 하둡 2.2부터 이용 가능하다.[32]

  • 클러스터 규모 확대: 하둡 1계열까지의 MapReduce 엔진에서는 마스터(JobTracker)가 클러스터 리소스 관리, 클러스터 내 MapReduce 작업 스케줄링, MapReduce 작업 자체 스케줄링(각 태스크에 대한 입력 데이터 할당 및 진행 관리)을 모두 담당해야 했기 때문에 JobTracker의 부하가 컸다. 따라서 하둡 클러스터 규모는 1000대 정도가 한계였다.
  • 리소스 관리 효율화: 하둡 1계열까지의 MapReduce 엔진에서 슬레이브(TaskTracker)에는 Map 태스크용과 Reduce 태스크용 슬롯이 각각 준비되어 있었고, 거기에 MapReduce의 각 태스크가 할당되었다. 이 때문에 Map 태스크용 슬롯에 빈자리가 없는 경우에는 Reduce 태스크용 슬롯에 빈자리가 있더라도 Map 태스크를 더 이상 할당할 수 없어 TaskTracker의 리소스 사용률이 저하되는 문제가 있었다.
  • MapReduce 이외의 분산 처리 실행: 하둡에서 분산 처리를 하려면 반드시 MapReduce 구조에 맞춰야 했다. MapReduce가 2회 이상 연속되는 처리를 실행하는 경우, 전 단계 MapReduce 작업의 처리 결과를 HDFS에 기록하고, 그것을 후속 MapReduce에서 읽어들이는 방식이어서 HDFS에 중간 데이터를 기록해야 했기 때문에 처리가 비효율적이었다. 다단계 MapReduce 처리를 고속화하기 위해 MapReduce 프레임워크와는 다른 분산 처리가 필요했다.


YARN은 하둡 1의 MapReduce 엔진을 대체하여 다양한 애플리케이션에 자원을 효과적으로 할당한다.[58] YARN은 작업을 추적하고 애플리케이션에 자원을 할당하는 '자원 관리자'와 실행 진행 상황을 모니터링하는 '애플리케이션 마스터'라는 두 가지 데몬을 실행한다.

3. 2. 1. YARN의 구성 요소

YARN은 하둡 클러스터의 리소스 관리 및 작업 스케줄링을 담당한다. 하둡 1 버전까지는 HDFS와 MapReduce 두 가지 모듈로 구성되었지만, 클러스터 규모 확대, 리소스 관리 효율화, MapReduce 이외의 분산 처리 실행 등의 과제를 해결하기 위해 YARN이 개발되어 하둡 2.2부터 사용 가능하다.

YARN은 하둡 1의 MapReduce에서 클러스터 리소스 관리 및 작업 스케줄링을 분리한 것이다. YARN은 마스터-슬레이브 구조로, 마스터 역할(리소스 관리, 작업 스케줄링)을 담당하는 리소스 매니저(ResourceManager) 와 슬레이브 역할(할당된 처리 실행)을 담당하는 노드 매니저(NodeManager) 로 구성된다. 각 애플리케이션 전용 애플리케이션 마스터(ApplicationMaster) 가 실행되어 애플리케이션 자체 스케줄링을 담당한다.

  • 리소스 매니저(ResourceManager): 클러스터 전체 자원을 관리하고 애플리케이션에 자원을 할당한다. 작업을 추적하고 애플리케이션에 자원을 할당하는 두 가지 데몬을 실행한다.[58]
  • 노드 매니저(NodeManager): 각 노드에서 실행되며, 할당된 자원(컨테이너) 내에서 애플리케이션을 실행하고 관리한다. NodeManager는 MapReduce에 특화된 슬롯이 아닌, 범용화된 컨테이너 단위로 리소스를 할당한다.
  • 애플리케이션 마스터(ApplicationMaster): 각 애플리케이션마다 실행되며, 해당 애플리케이션의 작업 스케줄링 및 진행 상황 관리를 담당한다. ApplicationMaster는 컨테이너 상에서 동작한다.


YARN에서는 MapReduce 외에도 아파치 스파크(영문판), 아파치 스톰(영문판), Apache Tez[75] 등 다양한 분산 처리 프레임워크가 동작한다.

3. 3. 맵리듀스 (MapReduce)

맵리듀스(MapReduce)는 대규모 데이터 처리를 위한 프로그래밍 모델이다. 맵리듀스는 데이터를 분산 처리하는 맵(Map) 단계와 맵 단계의 결과를 집계하는 리듀스(Reduce) 단계로 구성된다.[32] 맵리듀스는 하둡 분산 파일 시스템(HDFS)과 함께 하둡의 핵심 구성 요소 중 하나이다.

하둡 2 계열 이후에는 YARN 위에서 맵리듀스가 동작한다. 이를 MRv2라고 부른다.[75] YARN은 하둡 클러스터의 리소스 관리와 작업 스케줄링을 담당하는 시스템이다. MRv2에서는 클라이언트가 YARN의 ResourceManager에 작업을 제출하면, ResourceManager가 ApplicationMaster를 시작하고, ApplicationMaster가 맵 태스크와 리듀스 태스크의 할당 및 진행 상황을 관리한다.

하둡 1.x의 맵리듀스는 MRv1으로 불리며, JobTracker와 TaskTracker로 구성된다. MRv1에서 클라이언트는 JobTracker에 작업을 제출하고, JobTracker는 TaskTracker에 작업을 할당한다. 하지만 하둡 2 계열 이후에는 MRv1은 지원되지 않는다.

맵리듀스는 가능한 한 입력 데이터를 보관하는 DataNode와 동일한 노드에서 맵 태스크가 실행되도록 스케줄링하여 네트워크 부하를 줄인다.

4. 활용 사례

야후와 페이스북 등 여러 기업에서 하둡을 활용하고 있으며,[89] 데이터 분석 기업들도 하둡 기반 플랫폼을 구축하고 있다.[90] 2013년에는 포춘 50대 기업의 절반 이상이 하둡을 사용했을 정도로 널리 확산되었다.[66]

4. 1. 주요 활용 분야

야후와 페이스북 등이 하둡을 서비스의 여러 부분에 많이 사용하고 있다.[89] 또한 데이터 분석 기업들이 하둡을 기반으로 플랫폼을 구축하고 있다.[90]

하둡은 실시간보다는 배치 지향적이고, 데이터 집약적이며, 병렬 컴퓨팅의 이점을 얻는 모든 워크로드에 사용할 수 있다. 또한 람다 아키텍처, 아파치 스톰, 플링크, 스파크 스트리밍과 같은 실시간 시스템을 보완하는 데에도 사용할 수 있다.

하둡의 상업적 응용 분야는 다음과 같다.

  • 로그 또는 클릭 스트림 분석
  • 마케팅 분석
  • 기계 학습 및 데이터 마이닝
  • 이미지 처리
  • XML 메시지 처리
  • 웹 크롤링
  • 관계형 및 표 형식 데이터를 포함한 규정 준수를 위한 보관 작업
  • 검색 엔진 인덱싱


1998년 2월 19일, 야후는 세계 최대 규모라고 주장하는 하둡 프로덕션 애플리케이션을 출시했다. 야후 검색 웹맵은 10,000개 이상의 멀티코어를 가진 리눅스 클러스터에서 실행되는 하둡 애플리케이션으로, 모든 야후 웹 검색 쿼리에 사용되는 데이터를 생성했다.[61] 야후에는 여러 개의 하둡 클러스터가 있으며, HDFS 파일 시스템이나 맵리듀스 작업은 여러 데이터 센터에 걸쳐 분산되지 않는다. 모든 하둡 클러스터 노드는 하둡 배포판을 포함하여 리눅스 이미지를 부트스트랩한다. 클러스터가 수행하는 작업에는 야후 검색 엔진의 색인 계산이 포함되는 것으로 알려져 있다. 2009년 6월, 야후는 하둡 버전의 소스 코드를 오픈 소스 커뮤니티에 공개했다.[62]

2010년, 페이스북은 21 PB의 스토리지를 갖춘 세계 최대의 하둡 클러스터를 보유하고 있다고 주장했다.[63] 2012년 6월, 데이터가 100 PB로 증가했다고 발표했으며,[64] 그해 말에는 데이터가 하루에 약 0.5 PB씩 증가하고 있다고 발표했다.[65]

2013년 기준으로, 하둡의 채택은 널리 퍼져 포춘(Fortune) 50대 기업의 절반 이상이 하둡을 사용했다.[66]

하둡을 사용하는 기업 및 기관은 다음과 같다.

5. 하둡 생태계

"하둡"이라는 용어는 기본 모듈 및 하위 모듈뿐만 아니라, 아파치 피그, 아파치 하이브, 아파치 HBase, 아파치 피닉스, 아파치 스파크, 아파치 주키퍼, 아파치 임팔라, 아파치 플룸, 아파치 스쿱, 아파치 우지, 아파치 스톰 등 하둡과 함께 사용될 수 있는 다양한 추가 소프트웨어 패키지들을 포함하는 ''생태계''를 지칭하는 데 자주 사용된다.[12][13]

6. 한계 및 비판

가트너의 조사에 따르면, 자사가 안고 있는 문제에 대해 하둡은 과잉이며 I/O 비율이 낮다는 의견도 있다[77]. 실제로 동사의 조사에 따르면 응답자의 절반 이상은 투자를 계획하고 있지 않으며, 2년 이내의 투자 예정도 18%로 나타났다. 웹 기반 기술 기업들은 하둡을 이용하고 있는 반면, 그 외 대부분의 대기업들은 하둡에 실망하고 있다는 의견도 있다[76]. 이는 데이터량이 10TB 이하로 비교적 적은 경우에 장점을 찾을 수 없기 때문으로 여겨진다.

참조

[1] 웹사이트 Hadoop Releases https://archive.apac[...] Apache Software Foundation 2019-04-28
[2] 웹사이트 Apache Hadoop https://hadoop.apach[...] 2022-09-27
[3] 웹사이트 Doug Cutting: Big Data Is No Bubble http://www.silicon.c[...] 2018-03-11
[4] 웹사이트 Why Hadoop on IBM Power https://www.datanami[...] Datanami 2018-03-11
[5] 웹사이트 Cray Launches Hadoop into HPC Airspace https://www.hpcwire.[...] 2018-03-11
[6] 웹사이트 Welcome to Apache Hadoop! http://hadoop.apache[...] 2016-08-25
[7] 웹사이트 What is the Hadoop Distributed File System (HDFS)? https://www.ibm.com/[...] IBM 2021-04-12
[8] 웹사이트 Data Locality: HPC vs. Hadoop vs. Spark http://www.datascien[...] Data Science Association 2014-10-30
[9] 서적 2014 IEEE 28th International Parallel and Distributed Processing Symposium IEEE 2014-10
[10] 웹사이트 Resource (Apache Hadoop Main 2.5.1 API) http://hadoop.apache[...] Apache Software Foundation 2014-09-30
[11] 웹사이트 Apache Hadoop YARN – Concepts and Applications http://hortonworks.c[...] Hortonworks 2014-09-30
[12] 웹사이트 Continuuity Raises $10 Million Series A Round to Ignite Big Data Application Development Within the Hadoop Ecosystem https://finance.yaho[...] Marketwired 2014-10-30
[13] 웹사이트 Hadoop-related projects at http://hadoop.apache[...] Hadoop.apache.org 2013-10-17
[14] 서적 Data Science and Big Data Analytics: Discovering, Analyzing, Visualizing and Presenting Data https://books.google[...] John Wiley & Sons 2015-01-29
[15] 웹사이트 '[nlpatumd] Adventures with Hadoop and Perl' http://www.mail-arch[...] Mail-archive.com 2013-04-05
[16] 뉴스 The next 10 years of Apache Hadoop https://www.oreilly.[...] 2017-10-12
[17] 웹사이트 The Google File System http://research.goog[...]
[18] 웹사이트 MapReduce: Simplified Data Processing on Large Clusters https://static.googl[...]
[19] 웹사이트 new mailing lists request: hadoop https://issues.apach[...] 2006-01-28
[20] 뉴스 Hadoop, a Free Software Program, Finds Uses Beyond Search https://www.nytimes.[...] 2010-01-20
[21] 간행물 '[RESULT] VOTE: add Owen O''Malley as Hadoop committer' http://mail-archives[...] 2006-03-30
[22] 웹사이트 Index of /dist/hadoop/core https://archive.apac[...] 2017-12-11
[23] 웹사이트 Who We Are https://hadoop.apach[...] 2017-12-11
[24] 웹사이트 The Hadoop Distributed File System: Architecture and Design http://svn.apache.or[...] 2006
[25] 웹사이트 Release 2.10.2 available https://hadoop.apach[...]
[26] 웹사이트 Release 3.0.0 generally available https://hadoop.apach[...]
[27] 웹사이트 Release 3.0.3 available https://hadoop.apach[...]
[28] 웹사이트 Release 3.1.4 available https://hadoop.apach[...]
[29] 웹사이트 Release 3.2.4 available https://hadoop.apach[...]
[30] 웹사이트 Release 3.3.6 available https://hadoop.apach[...]
[31] 웹사이트 Release 3.4.0 available https://hadoop.apach[...]
[32] 웹사이트 MR2 and YARN Briefly Explained http://blog.cloudera[...] 2013-10-23
[33] 웹사이트 HDFS User Guide http://hadoop.apache[...] Hadoop.apache.org 2014-09-04
[34] 웹사이트 Running Hadoop on Ubuntu Linux System(Multi-Node Cluster) http://www.michael-n[...]
[35] 웹사이트 Running Hadoop on Ubuntu Linux (Single-Node Cluster) http://www.michael-n[...] 2013-06-06
[36] 웹사이트 Big data storage: Hadoop storage basics http://www.computerw[...] Computer Weekly 2016-06-21
[37] 웹사이트 Managing Files with the Hadoop File System Commands http://www.dummies.c[...] For Dummies 2016-06-21
[38] 웹사이트 Big Data Hadoop Tutorial for Beginners https://www.gyansetu[...] 2021-03-11
[39] 웹사이트 Apache Hadoop 2.7.5 – HDFS Users Guide https://hadoop.apach[...] 2020-06-19
[40] 웹사이트 HDFS Architecture http://hadoop.apache[...] 2013-09-01
[41] 서적 Distributed Storage: Concepts, Algorithms, and Implementations 2013
[42] 웹사이트 Version 2.0 provides for manual failover and they are working on automatic failover https://hadoop.apach[...] Hadoop.apache.org 2013-07-30
[43] 웹사이트 Improving MapReduce performance through data placement in heterogeneous Hadoop Clusters http://www.eng.aubur[...] Eng.auburn.ed 2010-04
[44] 웹사이트 Mounting HDFS https://wiki.apache.[...] 2016-08-05
[45] 웹사이트 The Hadoop Distributed Filesystem: Balancing Portability and Performance http://www.jeffshafe[...] Rice University 2016-09-19
[46] 웹사이트 How to Collect Hadoop Performance Metrics https://www.datadogh[...] 2016-07-21
[47] 웹사이트 HDFS Users Guide – Rack Awareness http://hadoop.apache[...] Hadoop.apache.org 2013-10-17
[48] 웹사이트 Cloud analytics: Do we really need to reinvent the storage stack? http://www.usenix.or[...] IBM 2009-06
[49] 웹사이트 HADOOP-6330: Integrating IBM General Parallel File System implementation of Hadoop Filesystem interface https://issues.apach[...] IBM 2009-10-23
[50] 웹사이트 HADOOP-6704: add support for Parascale filesystem https://issues.apach[...] Parascale 2010-04-14
[51] 웹사이트 HDFS with CloudIQ Storage http://resources.app[...] Appistry, Inc. 2013-12-10
[52] 웹사이트 High Availability Hadoop http://www.slideshar[...] HP 2010-06-09
[53] 웹사이트 Hadoop Commands Guide https://hadoop.apach[...] 2024-11-17
[54] 웹사이트 Refactor the scheduler out of the JobTracker https://issues.apach[...] Apache Software Foundation 2012-06-09
[55] 웹사이트 Scheduling in Hadoop http://www.ibm.com/d[...] IBM 2013-11-20
[56] 웹사이트 Hadoop Fair Scheduler Design Document https://svn.apache.o[...] 2017-10-12
[57] 웹사이트 CapacityScheduler Guide http://hadoop.apache[...] 2015-12-31
[58] 웹사이트 How Apache Hadoop 3 Adds Value Over Apache Hadoop 2 https://it.hortonwor[...] 2018-02-07
[59] 서적 2016 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW) IEEE 2016-05
[60] 웹사이트 '"How 30+ enterprises are using Hadoop", in DBMS2' http://www.dbms2.com[...] Dbms2.com 2013-10-17
[61] 웹사이트 Yahoo! Launches World's Largest Hadoop Production Application https://developer.ya[...] 2015-12-31
[62] 웹사이트 Hadoop and Distributed Computing at Yahoo! http://developer.yah[...] Yahoo! 2013-10-17
[63] 웹사이트 HDFS: Facebook has the world's largest Hadoop cluster! http://hadoopblog.bl[...] Hadoopblog.blogspot.com 2012-05-23
[64] 웹사이트 Under the Hood: Hadoop Distributed File system reliability with Namenode and Avatarnode http://www.facebook.[...] Facebook 2012-09-13
[65] 웹사이트 Under the Hood: Scheduling MapReduce jobs more efficiently with Corona https://www.facebook[...] Facebook 2012-11-09
[66] 간행물 Altior's AltraSTAR – Hadoop Storage Accelerator and Optimizer Now Certified on CDH4 (Cloudera's Distribution Including Apache Hadoop Version 4) http://www.prnewswir[...] Altior Inc. 2013-10-30
[67] 웹사이트 Hadoop - Microsoft Azure http://azure.microso[...] 2017-12-11
[68] 웹사이트 Hadoop http://azure.microso[...] Azure.microsoft.com 2014-07-22
[69] 웹사이트 Why the Pace of Hadoop Innovation Has to Pick Up http://gigaom.com/cl[...] Gigaom.com 2013-10-17
[70] 웹사이트 Defining Hadoop http://wiki.apache.o[...] Wiki.apache.org 2013-10-17
[71] 웹사이트 Defining Hadoop Compatibility: revisited http://mail-archives[...] Mail-archives.apache.org 2011-05-10
[72] 웹사이트 Apache Accumulo User Manual: Security https://accumulo.apa[...] Apache Software Foundation 2014-12-03
[73] 웹사이트 Hadoop Releases http://hadoop.apache[...] Hadoop.apache.org 2021-06-15
[74] 문서 Hadoop Users List http://wiki.apache.o[...]
[75] 문서 Apache Tez http://tez.apache.or[...]
[76] 웹사이트 Hadoop Is Falling – Why? https://www.kdnugget[...] 2018-01-03
[77] 웹사이트 「Hadoop」導入、当面伸び悩みか--ガートナー調査 https://japan.zdnet.[...] 2018-01-03
[78] 웹인용 Hadoop Releases http://hadoop.apache[...] Apache Software Foundation 2014-12-06
[79] 웹인용 Apache Hadoop https://hadoop.apach[...] 2022-09-27
[80] 문서 Hadoop is a Lucene sub-project that contains the distributed computing platform that was formerly a part of Nutch. This includes the Hadoop Distributed Filesystem (HDFS) and an implementation of map/reduce. http://lucene.apache[...]
[81] 문서 Hadoop is a framework for running applications on large clusters of commodity hardware. The Hadoop framework transparently provides applications both reliability and data motion. Hadoop implements a computational paradigm named map/reduce, where the application is divided into many small fragments of work, each of which may be executed or reexecuted on any node in the cluster. In addition, it provides a distributed file system that stores data on the compute nodes, providing very high aggregate bandwidth across the cluster. Both map/reduce and the distributed file system are designed so that node failures are automatically handled by the framework. http://lucene.apache[...]
[82] 웹인용 Michael J. Cafarella http://web.eecs.umic[...] Web.eecs.umich.edu 2013-04-05
[83] 웹인용 Hadoop creator goes to Cloudera https://intellipaat.[...] 2016-01-28
[84] 뉴스 Hadoop, a Free Software Program, Finds Uses Beyond Search http://www.nytimes.c[...] 2010-01-20
[85] 웹인용 MR2 and YARN Briefly Explained http://blog.cloudera[...] Cloudera 2013-10-23
[86] 웹인용 Running Hadoop on Ubuntu Linux (Single-Node Cluster) http://www.michael-n[...] 2013-06-06
[87] 웹인용 How to install Hadoop and Set up a Hadoop cluster? https://www.janbaskt[...] 2019-05-03
[88] 웹인용 The Hadoop Distributed File System: Architecture and Design Apache Software Foundation http://hadoop.apache[...] 2012-02-16
[89] 문서 (영어) 페이스북 하둡 사용 https://www.facebook[...]
[90] 뉴스 국내 하둡 3인방이 준비하는 ‘플랫폼’은 http://www.bloter.ne[...] 블로터 2012-04-04



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com