이것저것 다 개발

[Hadoop] 하둡과 하둡 모듈 본문

Hadoop&HBase

[Hadoop] 하둡과 하둡 모듈

용용개발 2018. 2. 7. 18:38

하둡(Hadoop)이란??

대용량 데이터를 분산 처리할 수 있는 자바 기반의 오픈소스 프레임워크입니다.

하둡이란 이름은 하둡프로젝트의 창시자인 더그 커팅의 아이가 가지고 놀던

코끼리 인형의 이름에서 따왔습니다.


특징으로는 신뢰할 수 있고, 확장할 수 있고, 분산처리 할 수 있습니다.

하둡 설치에는 크게 3가지 모드가 있습니다.

1. Standalone

2. Pseudo-distributed

3. Fully-distributed

Standalone mode (독립실행 모드)는 간단하게 하둡을 설치하고 테스트 하는 모드로 쓰입니다.

Pseudo-distributed mode (의사분산 모드)는 하나의 컴퓨터의 여러 데몬 프로세스를 사용하는 모드이고

Fully-distributed mode (완전분산 모드)는 실제 클러스터를 구성하여 사용하는 모드입니다.


하둡은 크게 4가지 모듈을 가지고 있습니다.

1. Hadoop Common

2. Hadoop Distributed File System (HDFS)

3. Hadoop MapReduce

4. Hadoop Yarn


Hadoop Common은 다른 Hadoop 모듈들을 지원하는 공용 유틸리티입니다.


Hadoop Distributed File System은 Master-Slave 구조로 Master = NameNode, Slave = DataNode 로 되어있습니다.

NameNode(Master) 는 파일시스템 namespace를 관리하고

namespace image와 edit log 두가지 형태의 파일을 지속적으로 저장하는 역할을 합니다.

DataNode(Slave) 는 디스크로부터 블록을 읽는 역할을 합니다.


Hadoop MapReduce는 큰 데이터를 처리하는 모듈입니다.

Map은 필터링 처리를, Reduce는 데이터 집약을 의미합니다.


마지막으로 Hadoop Yarn은 리소스 요청을 위한 유연한 모델을 가지고 있고

job scaduling과 클러스터의 resource 관리를 하는 모듈입니다.

Yarn은 클러스터마다 존재하는 ResourceManager 와 노드마다 존재하는 NodeManager,

ApplicationMaster로 구성되어있습니다.

ApplicationMaster는 HeartBeat를 통해 ResourceManager와 NodeManager를 상호 감시하는 역할을 합니다.


음..HDFS를 구성하고 카카오톡 대화 백업파일로 단어의 사용 횟수를 출력하는 MapReduce 테스트를 해봤는데

어렵네요...


Comments