하둡이란? Archi구조, 생태계 및 구성 요소

⚡ 스마트 요약

Apache Hadoop은 대규모 데이터 세트를 일반적인 컴퓨터 클러스터에 저장하고 처리 로직을 데이터 자체로 이동시키는 오픈 소스 프레임워크입니다. 따라서 분석 규모는 더 큰 서버를 추가하는 대신 저렴한 노드를 추가하여 확장할 수 있습니다.

  • 🔘 핵심 모듈: HDFS는 블록을 저장하고, MapReduce는 이를 처리하며, Hadoop 2.x 버전부터는 YARN이 클러스터 리소스를 스케줄링합니다.
  • ☑️ 데이터 위치: 컴파일된 처리 로직이 블록을 보유한 노드로 전송되므로 네트워크 대역폭 소모가 훨씬 적습니다.
  • 생태계 : Hive, HBase, Mahout, Sqoop, Flume 및 ZooKeeper는 SQL, NoSQL, 데이터 수집 및 조정 기능을 통해 핵심 기능을 확장합니다.
  • 🧪 마스터-슬레이브 구성: 네임노드 tracks 네임스페이스 메타데이터는 DataNodes가 블록을 보유하고 상태를 보고하는 동안 사용됩니다.
  • 🛠️ 결함 허용: 모든 블록은 노드 전체에 복제되므로 단일 머신에 장애가 발생하더라도 실행 중인 작업은 중단되지 않습니다.
  • ⚠️ 네트워크 토폴로지: Hadoop은 트래픽을 로컬로 유지하기 위해 클러스터를 데이터 센터, 랙 및 노드의 트리 구조로 모델링합니다.

하둡 아키텍처, 생태계 및 구성 요소는 무엇입니까?

하둡이란?

Apache Hadoop은 분산 컴퓨팅 환경에서 실행되는 데이터 처리 애플리케이션을 개발하는 데 사용되는 오픈 소스 소프트웨어 프레임워크입니다.

하둡을 사용하여 구축된 애플리케이션은 일반 컴퓨터 클러스터에 분산된 대규모 데이터 세트에서 실행됩니다. 일반 컴퓨터는 저렴하고 널리 보급되어 있습니다. 이러한 컴퓨터는 주로 저비용으로 더 높은 연산 능력을 구현하는 데 유용합니다.

개인용 컴퓨터 시스템의 로컬 파일 시스템에 데이터가 저장되는 것과 유사하게, 하둡에서는 데이터가 분산 파일 시스템이라고 불리는 곳에 저장됩니다. 하둡 분산 파일 시스템처리 모델은 다음을 기반으로 합니다. '데이터 지역성' 이 개념은 데이터가 저장된 클러스터 노드(서버)로 계산 로직을 전송하는 것입니다. 이 계산 로직은 단순히 고급 언어로 작성된 프로그램의 컴파일된 버전입니다. Java이러한 프로그램은 저장된 데이터를 처리합니다. Hadoop HDFS.

당신은 알고 계십니까? 컴퓨터 클러스터는 서로 연결되어 하나의 시스템처럼 작동하는 여러 처리 장치(저장 디스크 + 프로세서)의 집합으로 구성됩니다.

2026년 4월 2일에 출시된 버전 3.5.0이 현재 안정 버전이며, 3.4 버전도 계속해서 유지 보수 업데이트를 받고 있습니다.

하둡 생태계 및 구성 요소

아래 다이어그램은 하둡 생태계의 다양한 구성 요소를 보여주며, 각 구성 요소가 수행하는 작업(저장, 처리, 그리고 그 주변의 쿼리, 수집 및 조정 도구)에 따라 그룹화되어 있습니다.

HDFS, MapReduce 및 관련 Apache 프로젝트를 보여주는 Hadoop 생태계 다이어그램

Apache Hadoop은 두 개의 하위 프로젝트로 구성됩니다.

  1. Hadoop 맵리듀스: MapReduce는 Hadoop에서 실행되는 애플리케이션을 작성하기 위한 계산 모델 및 소프트웨어 프레임워크입니다. 이러한 MapReduce 프로그램은 대규모 계산 노드 클러스터에서 병렬로 엄청난 양의 데이터를 처리할 수 있습니다.
  2. HDFS (하둡 분산 파일 시스템): HDFS는 Hadoop 애플리케이션의 저장 부분을 담당합니다. MapReduce 애플리케이션은 HDFS에서 데이터를 사용합니다. HDFS는 데이터 블록의 여러 복제본을 생성하여 클러스터의 컴퓨트 노드에 분산합니다. 이 분산은 안정적이고 매우 빠른 계산을 가능하게 합니다.

이번 릴리스에는 두 개의 핵심 모듈이 추가되었습니다. 하둡 원사Hadoop 2.x에 추가된 이 기능은 클러스터에서 작업을 예약합니다. Hadoop 공통 공유된 것을 보유합니다 Java 모든 모듈이 의존하는 라이브러리입니다. YARN은 엔진이 작동할 수 있도록 해주는 도구입니다. SparkTez와 Flink는 MapReduce와 함께 실행됩니다.

하둡은 맵리듀스와 분산 파일 시스템인 HDFS로 가장 잘 알려져 있지만, 이 용어는 분산 컴퓨팅 및 대규모 데이터 처리라는 큰 범주에 속하는 관련 프로젝트들을 통칭하는 데에도 사용됩니다. 아파치의 다른 하둡 관련 프로젝트로는 다음과 같은 것들이 있습니다. 하이브HBase, Mahout, 스쿱, 플룸그리고 ZooKeeper.

하둡 Archi강의

Hadoop은 데이터 저장 및 분산 데이터 처리를 위한 마스터-슬레이브 아키텍처를 사용합니다. MapReduce 그리고 HDFS 방식도 있습니다. 아래 다이어그램은 스토리지 계층과 처리 계층을 나란히 배치하여 이러한 역할들을 보여줍니다.

NameNode, DataNode, 마스터 노드 및 슬레이브 노드를 보여주는 하둡 아키텍처의 고수준 다이어그램

높은 수준의 하둡 Archi강의

네임 노드

NameNode는 네임스페이스에서 사용되는 모든 파일 및 디렉터리에 대한 메타데이터를 저장합니다. 여기에는 각 파일을 구성하는 블록과 해당 블록의 위치가 포함됩니다.

데이터 노드

DataNode는 HDFS 노드의 상태를 관리하고 저장된 블록과 상호 작용할 수 있도록 하며, 주기적인 블록 보고서와 하트비트를 NameNode에 전송합니다.

마스터노드

마스터 노드를 사용하면 Hadoop MapReduce를 사용하여 데이터의 병렬 처리를 수행할 수 있습니다.

슬레이브 노드

슬레이브 노드는 하둡 클러스터에 추가되는 머신으로, 데이터를 저장하고 복잡한 계산을 실행할 수 있도록 해줍니다. 또한, 각 슬레이브 노드는 태스크를 실행합니다.Tracker와 DataNode를 사용합니다. 이를 통해 프로세스를 NameNode 및 Job과 동기화할 수 있습니다.Trac각각 케르.

하둡에서는 마스터 또는 슬레이브 시스템을 클라우드 또는 온프레미스에 설정할 수 있습니다.

이름 짓기에 대한 참고 사항 하나: 일TracKER 태스크TracKER 1세대 MapReduce 런타임(MRv1)에 속합니다. Hadoop 2.x부터 YARN은 클러스터 전체에 걸쳐 이러한 역할을 분담합니다. 리소스매니저노드매니저 근로자 한 명당 한 명씩 ApplicationMaster 작업별로 적용됩니다. NameNode와 DataNode는 변경되지 않습니다.

하둡의 특징

빅데이터 분석에 적합합니다.

As 빅데이터 빅데이터는 분산되어 있고 비정형적인 특성을 가지는 경향이 있기 때문에, 하둡 클러스터는 빅데이터 분석에 가장 적합합니다. 실제 데이터가 아닌 처리 로직이 컴퓨팅 노드로 전송되므로 네트워크 대역폭 소모가 적습니다. 이를 대역폭 효율성이라고 합니다. 데이터 지역성 개념또한 하둡 기반 애플리케이션의 효율성을 높이는 데 도움이 됩니다.

확장성

하둡 클러스터는 클러스터 노드를 추가하는 방식으로 손쉽게 원하는 규모까지 확장할 수 있으므로 빅데이터의 증가에 대응할 수 있습니다. 또한, 확장을 위해 애플리케이션 로직을 수정할 필요가 없습니다.

결함 허용

하둡 생태계는 입력 데이터를 다른 클러스터 노드에 복제하는 기능을 제공합니다. 따라서 클러스터 노드에 장애가 발생하더라도 다른 클러스터 노드에 저장된 데이터를 사용하여 데이터 처리를 계속할 수 있습니다. HDFS는 기본적으로 모든 블록의 복사본을 세 개씩 보관하며, 이 값은 설정에 따라 결정됩니다. dfs.복제 속성이 지정되고, NameNode는 해당 개수보다 적어지는 블록을 다시 복제합니다.

Hadoop에서의 네트워크 토폴로지

네트워크 토폴로지(구성)는 클러스터 규모가 커짐에 따라 하둡 클러스터의 성능에 영향을 미칩니다. 성능 외에도 고가용성과 장애 처리 또한 중요합니다. 이를 위해 하둡 클러스터 구성은 네트워크 토폴로지를 활용합니다.

아래 트리는 데이터 센터에서 각 랙 내부의 노드에 이르기까지 해당 구성이 어떻게 모델링되는지 보여줍니다.

데이터 센터, 랙 및 노드를 포함하는 하둡 네트워크 토폴로지 트리는 노드 간 거리를 측정하는 데 사용됩니다.

일반적으로 네트워크 대역폭은 네트워크를 구성할 때 고려해야 할 중요한 요소입니다. 하지만 대역폭을 측정하는 것이 어려울 수 있기 때문에, 하둡에서는 네트워크를 트리로 표현하고 이 트리의 노드 간 거리(홉 수)를 하둡 클러스터 구성의 중요한 요소로 간주합니다. 여기서 두 노드 사이의 거리는 두 노드가 가장 가까운 공통 조상까지의 거리의 합과 같습니다.

하둡 클러스터는 데이터 센터, 랙, 그리고 실제로 작업을 실행하는 노드로 구성됩니다. 여기서 데이터 센터는 랙으로, 랙은 노드로 이루어져 있습니다. 프로세스에 사용 가능한 네트워크 대역폭은 프로세스의 위치에 따라 달라집니다. 즉, 데이터 센터에서 멀어질수록 사용 가능한 대역폭은 줄어듭니다.

  • 동일한 노드의 프로세스
  • 동일한 랙에 있는 다른 노드
  • 동일한 데이터 센터의 서로 다른 랙에 있는 노드
  • 다양한 데이터 센터의 노드

랙 인식은 동일한 트리 구조를 사용합니다. HDFS는 복제본을 여러 랙에 배치하므로 랙 스위치가 고장 나더라도 모든 데이터 복사본이 함께 손실되지 않습니다.

자주 묻는 질문

2026년 4월 2일에 출시된 버전 3.5.0은 3.5 라인의 첫 번째 안정 버전이며, 새로운 클러스터 구축에 일반적으로 사용되는 버전입니다. 더 오래된 안정화 버전을 원하시는 경우, 3.4 라인도 계속 유지 관리되고 있습니다.

예. 하둡은 독립 실행형 모드를 지원하며, 이 모드는 단독으로 실행됩니다. Java 데몬이 없는 프로세스 모드와 각 데몬이 하나의 호스트에서 개별적으로 실행되는 유사 분산 모드가 있습니다. 두 모드 모두 학습 및 테스트용이며 프로덕션 환경용이 아닙니다.

작업 이력을 기반으로 학습된 모델은 실행 시간을 예측하고, 컨테이너 크기를 권장하며, 작업이 완료되기 전에 데이터 불균형을 표시합니다. 유사한 모델은 NameNode 및 DataNode 로그를 스캔하여 임계값 경고보다 더 일찍 디스크 오류 및 핫랙을 감지합니다.

Copilot은 매퍼 및 리듀서 골격, 작업 드라이버 구성, XML 속성 블록과 같은 상용구 코드를 빠르게 생성합니다. Copilot은 기존 mapred 패키지와 최신 mapreduce 패키지를 혼합하여 사용하므로 생성된 코드를 실행 중인 API 버전과 항상 비교하여 확인하십시오.

기본적으로 3개의 복제본이 사용되며, dfs.replication에 의해 제어됩니다. 하나의 복제본은 쓰기 노드에 유지되고, 두 번째 복제본은 다른 랙으로 이동하며, 세 번째 복제본은 두 번째 랙에 합류합니다. 네임노드는 목표치보다 낮은 블록을 복원합니다.

페타바이트 규모의 배치 스토리지를 자체 하드웨어에 유지해야 하는 경우가 여전히 일반적입니다. 대부분의 새로운 프로세싱은 이러한 용도로 개발되고 있습니다. Spark 또는 YARN에서 실행되는 Flink와 같은 경우, MapReduce가 더 이상 사용되지 않더라도 HDFS는 스토리지 계층으로 계속 사용되는 경우가 많습니다.

YARN은 Hadoop 2.x에서 도입된 리소스 관리자입니다. 클러스터 스케줄링을 MapReduce 프로그래밍 모델에서 분리하여 Job을 없앴습니다.Tracker 병목 현상을 해결하고 엔진과 같은 것들을 작동시키세요 SparkTez와 Flink는 하나의 클러스터를 공유합니다.

Java Hadoop Streaming은 표준 입력을 읽는 모든 실행 파일이 매퍼 또는 리듀서로 작동할 수 있도록 하는 네이티브 기능입니다. Python, 루비, 펄 및 C++ 모두 사용 가능하며, Hive는 동일한 데이터 위에 SQL과 유사한 계층을 추가합니다.

이 게시물을 요약하면 다음과 같습니다.