본문 바로가기
IT 놀이터/General

[용어] Apache Hadoop 이란?

by 돼지왕 왕돼지 2012. 10. 13.
반응형





Apache Hadoop 이란?

- 여러 컴퓨터로 구성된 클러스터를 이용하여 빅 데이터를 처리하기 위한 분산 처리 프레임웍.
 
- OLTP(OnLine Transaction Processing - 웹과 같이 응답이 바로 필요한 시스템 ) 보다는 OLAP(OnLine Analytical Processing - 데이터를 모아서 처리 후 일정 시간 이후에 응답을 주는 형태 ) 를 위해 디자인된 시스템으로 수분에서 수일이 소요되는 빅 데이터 처리에 적합한 프레임웍.
 
- Map & Reduce 라는 아키텍쳐 사용. 하나의 큰 데이터를 여러 조각으로 나워서 처리 ( Map ) 하는 과정과 처리 결과를 모아서 하나로 합쳐 결과를 내는 단계 ( Reduce ) 로 나뉘어 진다.
 

이미지 출처 : http://www-01.ibm.com/software/ebusiness/jstart/hadoop/


 
- Map & Reduce 를 하기 위해서는 다음과 같은 공간들이 필요하다.

1. 데이터를 조각조각 나눠 저장할 공간.
2. 데이터 조각을 처리한 임시 결과를 저장할 공간.
3. 데이터 결과 조각들을 합쳐 저장할 공간. 


- 위 공간들은 전체 분산 처리 시스템에서 접근이 가능해야 하고, 대용량의 데이터를 저장할 수 있어야 한다. Hadoop 에서는 이 공간들을 분산 파일 시스템 ( Distributed File System ) 으로 지정하여 사용하며, 이를 HDFS 이라 한다.
 
- Hadoop 은 크게 분산 데이터 처리를 위한 Map&Reduce 모듈 (MR)과 Input/Output 데이터를 저장하는 파일시스템인 HDFS 로 구성되어 있다.
 
- HDFS 는 크게 2개로 나뉜다. Namenodes, Datanodes.

Namenodes & Datanodes

- Namenodes :  일종의 master node 로 파일들에 대한 메타 데이터를 저장하는 노드.

- Datanodes : 실제 파일을 저장하고 읽어오는 노드


- Namenodes 에는 모든 블록에 대한 메타정보가 들어가 있기 때문에, Namenodes 가 장애가 나면 전체 HDFS 장애가 나는 SFP ( Single Failure Point ) 가 된다.
 
- 블럭(Block) 은 HDFS 의 Read, Write 의 최소 단위를 말한다. 블럭사이즈는 64M 가 기본이고, 보통 128M 를 사용한다. 큰 블럭사이즈를 사용하는 이유는 MR 처리에 있어서 Map Task 가 하나의 파일 사이즈 단위로 처리를 하기 때문에 작은 용량의 파일 엑세스에 비해 효율적으로 처리할 수 있다. NameNodes 에서 관리해야 할 데이터 양도 적어진다.
 
- Hadoop 은 일반 x86 PC 서버에 Disk 를 붙인 형태의 저가 서버 여러개를 연결하여 대규모 분산 파일 시스템을 구축할 수 있다. ( 경제적으로 서버 구축이 가능하다. )
 
- Namenode 는 데이터를 저장할 때 장애를 대비하여 N 개의 datanode 에 복제해서 저장한다. 그래서 Read operation 을 수행할 때 가장 가까이에 있는 복제본을 return 한다.
 



도움이 되셨다면 손가락 꾸욱~ ( 로그인 필요 x )



반응형

댓글