본문 바로가기

라즈베리파이 5

아파치 하둡이란 무엇인가요?

반응형

 

아파치 하둡이란 무엇인가요?

IBM에 따르면 아파치 하둡은 당시 야후에서 근무하던 더글러스 커팅이 개발한 오픈 소스 소프트웨어 프레임워크로, 간단한 프로그래밍 모델을 사용하여 대규모 데이터 집합을 매우 안정적으로 분산 처리할 수 있는 기능을 제공합니다.

 

 

이미지 출처 https://www.techopedia.com/definition/13800/apache-hadoop

 

 

 


아파치 하둡 이전 

소셜 미디어 플랫폼, 웹사이트, 사물인터넷 기기 등은 매일 대량의 데이터를 생산하고 있으며, 이러한 방대한 양의 비정형 데이터를 저장, 변환 또는 분석 작업을 수행하기 위해 처리하는 것이 어렵습니다. 데이터 저장 문제는 웹페이지를 다운로드하여 순위를 매기는 검색 엔진의 알고리즘을 개발할 때 나타납니다. 2002년 구글이 아파치 너치를 개발할 때 개발자들은 빅 데이터를 처리하는 데 어려움을 겪고 있었습니다. 

2002년부터 2006년까지 

1. 구글은 빅데이터 저장 및 액세스를 위한 솔루션인 GFS를 도입했습니다. 

2.구글은 클러스터 기반 데이터 프로세서인 MapReduce에 대한 논문을 발표했습니다 

3. 더그 커팅, Nutch 분산 파일 시스템(NDFS) 소개 

2006년 더그 커팅은 Nutch 프로젝트를 기반으로 하둡을 개발했습니다. 

하둡 구성 요소 

1. 공통: 모든 하둡 모듈이 의존하는 모든 자바 라이브러리를 포함합니다. 

2. 하둡 분산 파일 시스템(HDFS): 빠른 데이터 액세스 속도를 제공하고 대량의 데이터를 여러 노드에 교차 저장하는 분산 파일 시스템입니다.

3. YARN(또 다른 리소스 협상자): 작업 스케줄러 역할을 하는 하둡의 클러스터 관리자입니다. 

4. MapReduce: 여러 클러스터에서 데이터를 병렬로 처리하는 데 사용되는 병렬 데이터 처리 도구입니다.

하둡 아키텍처


하둡은 마스터-슬레이브 아키텍처를 따르며, 이는 마스터 노드(NameNode라고도 함)와 슬레이브 노드(DataNode라고도 함)가 있음을 의미합니다.

유형에서 멀리 떨어진 각 노드는 MapReduce 레이어와 HDFS 레이어로 분할됩니다.

마스터 노드: 파일 시스템 네임스페이스를 제어하는 단일 노드.
맵리듀스 레이어의 Jop 추적기 및 작업 추적기와 HDFS 레이어의 이름 노드 및 데이터 노드를 포함합니다.

슬레이브 노드: 데이터 블록을 저장하는 여러 노드.
맵리듀스 레이어의 태스크 트래커와 HDFS 레이어의 데이터 노드를 포함합니다.

보조 노드: 작동 중인 노드가 다운될 경우에 대비해 사용되는 대기 노드입니다.

작업 추적기: 마스터 노드의 일부이며 리소스 관리, 작업 예약, 작업에 대한 메타데이터를 보관하는 역할을 담당합니다.

작업 추적기: 데이터 노드의 일부로 작업을 실행하고, 데이터 노드 상태(하트비트 테스트)를 작업 추적기에 알리고, 노드 내 각 작업에 대한 리소스를 관리하는 역할을 담당합니다.

YARN을 사용하면 작업 추적기와 작업 추적기가 필요 없습니다.

HDFS(Hadoop Distributed File System 하둡 분산 파일 시스템)


HDFS는 Google 파일 시스템(GFS)에서 영감을 얻은 분산 파일 시스템으로, 데이터를 여러 컴퓨터에 저장하고 복제하여 고가용성을 보장하는 분산 파일 시스템입니다.

 



블록


블록은 데이터 노드에서 가장 작은 데이터 덩어리(대부분 100-200MB)로, 블록 크기가 크면 검색 시간을 최소화할 수 있습니다.

HDFS는 매우 큰 파일과 데이터 스트림을 처리하는 데 적합합니다.

MapReduce


하둡에서 사용되는 처리 모델입니다.

Map: 입력 데이터를 독립적인 청크로 분할하여 지도 작업에서 완전히 병렬 방식으로 처리합니다.


Reduce: 먼저 맵에서 들어오는 데이터를 정렬한 다음 축소 작업을 수행합니다. 일반적으로 축소 작업의 출력은 작업의 최종 결과물이 됩니다.

 

 

발생 횟수가 가장 많은 단어 찾기를 예로 들 수 있습니다:

Map: 텍스트를 읽고 각 단어에 대한 키-값 쌍을 반환합니다. 예:("word", 1).


Reduce: 각 단어의 개수를 합산하여 최대 개수를 가진 단어를 반환합니다.


YARN(Yet Another Resource Negotiator 또 다른 리소스 협상자)


Yarn은 두 개의 레이어를 도입하여 작업 추적기와 작업 추적기의 문제를 해결하는 리소스 관리자이자 작업 스케줄러입니다:

1. 리소스 매니저: 클러스터 전반의 리소스를 관리하고 작업에 대한 리소스를 할당합니다.
2. NodeManager: 단일 노드에서 리소스를 관리하고 리소스 매니저에 보고합니다.
3. 애플리케이션 마스터(맵 축소): 실행 중인 맵 축소 작업을 관리합니다.

참조 https://www.javatpoint.com/hadoop-tutorial

정리할 자료 추가

반응형

더욱 좋은 정보를 제공하겠습니다.~ ^^