본문 바로가기
Cloud/BigData

Introduction to Hadoop

by 계영수 2023. 10. 9.
728x90

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

개인용 컴퓨터 시스템의 로컬 파일 시스템에 상주하는 데이터와 유사하게, 하둡에서 데이터는 분산 파일(Distributed File)이라고 불리우는 분산 파일 시스템에 상주합니다

프로세싱 모델은 (특이하게도) 빅데이터/분산처리를 위한 연산 로직이 데이터를 포함하는 클러스터 노드(서버)로 전송되어 그 서버에서 동작하게됩니다.
이러한(분산 처리되는) 컴퓨팅 로직은 Java와 같은 고급 언어로 작성된 프로그램의 컴파일된 버전의 소프트웨어일 뿐입니다. 이러한 프로그램은 Hadoop HDFS에 저장된 데이터를 처리합니다.

HADOOP은 오픈 소스 기반의 소프트웨어 프레임워크입니다. HADOOP을 사용하여 구현된 애플리케이션은 범용 컴퓨터 로 구현된 클러스터에서 분산되어 저장된 대규모 데이터의 집합을 대상으로 실행됩니다.

범용 컴퓨터는 저렴하고 널리 사용 가능합니다. 이는 주로 저렴한 비용으로 더 큰 계산 능력을 달성하는 데 유용합니다.

컴퓨터 클러스터는 서로 연결되어 단일 시스템처럼 작동하는 여러 처리 장치(저장 디스크 + 프로세서) 세트로 구성됩니다.

 

하둡의 구성요소

Apache Hadoop은 크게 2개의 주제(Hadoop/)로 구성됩니다.

 

▶ Hadoop

MapReduce는 Hadoop에서 실행되는 애플리케이션을 작성하기 위한 계산 모델이자 소프트웨어 프레임워크입니다. 이러한 MapReduce 프로그램은 대규모 계산 노드 클러스터에서 엄청나게 큰 규모의 데이터를 병렬로 처리할 수 있습니다.

 

▶ Distributed File

HDFS는 Hadoop 애플리케이션의 스토리지 부분을 관리합니다. MapReduce 애플리케이션은 HDFS의 데이터를 사용합니다. HDFS는 데이터 블록의 복제본을 여러개 생성하여 클러스터의 컴퓨팅 노드에 배포합니다. 이렇게 분산 처리되는 방식을 사용하면 안정적이고 매우 빠른 계산이 가능합니다.


Hadoop은 MapReduce 및 해당 분산 파일 시스템인 HDFS로 가장 잘 알려져 있지만, 이 용어는 분산 컴퓨팅 및 대규모 데이터 처리에 속하는 관련 프로젝트 제품군에도 사용됩니다. Apache의 다른 Hadoop 관련 프로젝트는 다음과 같습니다.

 

Hadoop의 특징

"빅 데이터 처리에 가장 적합한 프레임워크"

빅 데이터는 본질적으로 흩어져 있고 동시에 구조화되지 않는 경향이 있으므로 HADOOP 클러스터는 빅 데이터 분석에 가장 적합합니다. 컴퓨팅 노드로 흐르는 것은 처리 로직(실제 데이터가 아님)이기 때문에 더 적은 네트워크 대역폭이 소비됩니다. 이 개념을 지역성(locality)이라고 하며 Hadoop 기반 어플리케이션의 효율성을 높이는 데 큰 도움이 됩니다.

 

"확장성에 뛰어난..."

HADOOP 클러스터는 추가 클러스터 노드를 추가하여 어느 정도까지 쉽게 확장할 수 있으므로 빅 데이터 처리 규모의 증가가 가능합니다. 또한 이러한 규모의 확장에는 애플리케이션 로직을 수정할 필요가 없습니다.

 

"장애에 강한..."

HADOOP 에코시스템에는 입력 데이터를 다른 클러스터 노드로 복제하는 프로비저닝이 있습니다. 이렇게 하면 클러스터 노드에 오류가 발생하더라도 다른 클러스터 노드에 저장된 데이터를 사용하여 데이터 처리를 계속 진행할 수 있습니다.

 

하둡의 네트워크 구성도(Network Topology in Hadoop)

 

네트워크의 토폴로지(Arrangment)는 Hadoop 클러스터의 크기가 커질 때 Hadoop 클러스터의 성능에 영향을 미칩니다. 성능 외에도 고가용성(High Availability) 및 장애(Failure) 처리에도 신경을 써야 합니다. 이 Hadoop 클러스터를 구성하기 위해서 적합한 네트워크 토폴로지를 구성해야 합니다.

일반적으로 네트워크 대역폭은 네트워크를 구성할 때 고려해야 할 중요한 요소입니다. 그러나 대역폭 측정이 어려울 수 있기 때문에 Hadoop에서는 네트워크를 트리로 표현하고 이 트리의 노드 간 거리(홉 수)는 Hadoop 클러스터 형성에 중요한 요소로 간주합니다.

 

여기서 두 노드 사이의 거리는, 두 노드가 공통적으로 연결되어 있는 어떤 노드로부터 두 노드까지 각 거리의 합이 됩니다.  (Distance between two nodes is equal to sum of their distance to their closest common ancestor.)
Hadoop 클러스터는 데이터 센터, 랙 그리고 실제 작업을 수행하는 노드로 구성됩니다. 여기서 데이터 센터는 랙으로 구성되고 랙은 노드로 구성됩니다. 프로세스에 사용할 수 있는 네트워크 대역폭은 프로세스의 위치에 따라 달라집니다. 즉, 사용 가능한 대역폭은 구성 요소들의 거리가 멀어질수록 작아지게 됩니다.

 

Processes on the same node
Different nodes on the same rack
Nodes on different racks of the same data center
Nodes in different data centers

 

728x90

'Cloud > BigData' 카테고리의 다른 글

빅데이터 기술의 이해  (0) 2023.10.11