본문 바로가기
카테고리 없음

Hadoop 이란?

by Nomangs 2022. 5. 31.
반응형

Hadoop은 Apache의 오픈 소스 프레임워크로 대용량의 데이터를 처리하고 분석하는 데 사용됩니다. Hadoop은 Java로 작성되었으며 OLAP(온라인 분석 처리)가 아닙니다. 일괄/오프라인 처리에 사용됩니다. Facebook, Yahoo, Google, Twitter, LinkedIn 등에서 사용되고 있습니다. 또한 클러스터에 노드를 추가하는 것만으로 확장할 수 있습니다.

하둡의 모듈

  1. HDFS: 하둡 분산 파일 시스템. Google은 GFS라는 논문을 발표했으며 이를 기반으로 HDFS가 개발되었습니다. 파일이 블록으로 분할되어 분산 아키텍처를 통해 노드에 저장될 것이라고 명시되어 있습니다.
  2. Yarn: 또 다른 Resource Negotiator가 작업 스케줄링 및 클러스터 관리에 사용됩니다.
  3. Map Reduce: Java 프로그램이 키 값 쌍을 사용하여 데이터에 대한 병렬 계산을 수행하는 데 도움이 되는 프레임워크입니다. Map 작업은 입력 데이터를 가져와 키 값 쌍으로 계산할 수 있는 데이터 세트로 변환합니다. Map 태스크의 출력은 reduce 태스크에 의해 소비되고 out of reducer는 원하는 결과를 제공합니다.
  4. Hadoop Common: 이 Java 라이브러리는 Hadoop을 시작하는 데 사용되며 다른 Hadoop 모듈에서 사용됩니다.

하둡 아키텍처

Hadoop 아키텍처는 파일 시스템, MapReduce 엔진 및 HDFS(Hadoop Distributed File System)의 패키지입니다. MapReduce 엔진은 MapReduce/MR1 또는 YARN/MR2일 수 있습니다.

Hadoop 클러스터는 단일 마스터 노드와 여러 슬레이브 노드로 구성됩니다. 마스터 노드에는 Job Tracker, Task Tracker, NameNode 및 DataNode가 포함되고 슬레이브 노드에는 DataNode 및 TaskTracker가 포함됩니다.

하둡 분산 파일 시스템

HDFS(Hadoop Distributed File System)는 Hadoop을 위한 분산 파일 시스템입니다. 여기에는 마스터/슬레이브 아키텍처가 포함됩니다. 이 아키텍처는 단일 NameNode가 마스터 역할을 수행하고 여러 DataNode가 슬레이브 역할을 수행하는 구조로 구성됩니다.

NameNode와 DataNode는 모두 상용 머신에서 충분히 실행할 수 있습니다. Java 언어는 HDFS를 개발하는 데 사용됩니다. 따라서 Java 언어를 지원하는 모든 시스템은 NameNode 및 DataNode 소프트웨어를 쉽게 실행할 수 있습니다.

네임노드

  • HDFS 클러스터에 존재하는 단일 마스터 서버입니다.
  • 싱글노드이기 때문에 싱글포인트 장애의 원인이 될 수 있습니다.
  • 파일 열기, 이름 바꾸기 및 닫기와 같은 작업을 실행하여 파일 시스템 네임스페이스를 관리합니다.
  • 시스템 아키텍처를 단순화합니다.

데이터노드

  • HDFS 클러스터에는 여러 DataNode가 포함되어 있습니다.
  • 각 DataNode는 여러 데이터 블록을 포함합니다.
  • 이러한 데이터 블록은 데이터를 저장하는 데 사용됩니다.
  • 파일 시스템의 클라이언트로부터 요청을 읽고 쓰는 것은 DataNode의 책임입니다.
  • NameNode의 지시에 따라 블록 생성, 삭제, 복제를 수행합니다.

작업 추적기

  • Job Tracker의 역할은 클라이언트로부터 MapReduce 작업을 수락하고 NameNode를 사용하여 데이터를 처리하는 것입니다.
  • 이에 대한 응답으로 NameNode는 Job Tracker에 메타데이터를 제공합니다.

작업 추적기

  • Job Tracker의 슬레이브 노드로 작동합니다.
  • Job Tracker에서 작업과 코드를 수신하고 해당 코드를 파일에 적용합니다. 이 프로세스를 매퍼라고도 합니다.

맵리듀스 레이어

MapReduce는 클라이언트 애플리케이션이 MapReduce 작업을 Job Tracker에 제출할 때 존재합니다. 이에 대한 응답으로 Job Tracker는 요청을 적절한 Task Tracker로 보냅니다. 때때로 TaskTracker가 실패하거나 시간 초과됩니다. 이러한 경우 작업의 해당 부분이 다시 예약됩니다.

하둡의 장점

  • 고속: HDFS에서 데이터는 클러스터에 분산되고 매핑되어 더 빠른 검색에 도움이 됩니다. 데이터를 처리하는 도구도 동일한 서버에 있는 경우가 많기 때문에 처리 시간이 단축됩니다. 몇 분 안에 테라바이트의 데이터를 처리하고 몇 시간이면 페타 바이트를 처리할 수 있습니다.
  • 확장성: 클러스터에 노드를 추가하는 것만으로 Hadoop 클러스터를 확장할 수 있습니다.
  • 비용 효율성: Hadoop은 오픈 소스이며 상용 하드웨어를 사용하여 데이터를 저장하므로 기존의 관계형 데이터베이스 관리 시스템에 비해 비용 효율적입니다.
  • 장애 복구: HDFS에는 네트워크를 통해 데이터를 복제할 수 있는 속성이 있으므로 한 노드가 다운되거나 다른 네트워크 장애가 발생하면 Hadoop이 다른 데이터 복사본을 가져와 사용합니다. 일반적으로 데이터는 세 번 복제되지만 복제 인수는 구성할 수 있습니다.

하둡의 역사

Hadoop은 2002년 Doug Cutting과 Mike Cafarella에 의해 시작되었습니다. 그 기원은 Google에서 발행한 Google 파일 시스템 문서였습니다.

 

다음 단계에서 Hadoop의 역사에 집중해 보겠습니다.

  • 2002년 Doug Cutting과 Mike Cafarella는 Apache Nutch 라는 프로젝트를 시작했습니다 . 오픈 소스 웹 크롤러 소프트웨어 프로젝트입니다.
  • Apache Nutch에서 작업하는 동안 그들은 빅 데이터를 처리했습니다. 그 데이터를 저장하기 위해 그들은 그 프로젝트의 결과가 되는 많은 비용을 지출해야 합니다. 이 문제는 하둡이 등장하게 된 중요한 이유 중 하나가 된다.
  • 2003년 Google은 GFS(Google 파일 시스템)라는 파일 시스템을 도입했습니다. 데이터에 대한 효율적인 액세스를 제공하기 위해 개발된 독점 분산 파일 시스템입니다.
  • 2004년 Google은 Map Reduce에 대한 백서를 발표했습니다. 이 기술은 대규모 클러스터에서 데이터 처리를 단순화합니다.
  • 2005년 Doug Cutting과 Mike Cafarella는 NDFS(Nutch Distributed File System)라는 새로운 파일 시스템을 도입했습니다. 이 파일 시스템에는 Map Reduce도 포함되어 있습니다.
  • 2006년 Doug Cutting은 Google을 그만두고 Yahoo에 합류했습니다. Nutch 프로젝트를 기반으로 Dough Cutting은 HDFS(Hadoop Distributed File System)로 알려진 파일 시스템과 함께 새로운 프로젝트 Hadoop을 소개합니다. 올해 출시된 Hadoop 첫 번째 버전 0.1.0.
  • Doug Cutting은 아들의 장난감 코끼리 이름을 따서 프로젝트 이름을 Hadoop이라고 지었습니다.
  • 2007년에 야후는 1000개의 머신으로 구성된 2개의 클러스터를 운영합니다.
  • 2008년에 Hadoop은 209초 이내에 900개 노드 클러스터에서 1테라바이트의 데이터를 정렬하는 가장 빠른 시스템이 되었습니다.
  • 2013년에는 Hadoop 2.2가 출시되었습니다.
  • 2017년에는 Hadoop 3.0이 출시되었습니다.
반응형

댓글