하둡이란?
하둡은 클러스터 환경에서 대량의 자료를 처리할 수 있는 자바로 작성 된 오픈 소스 프레임워크 이다.
구글의 분산처리 시스템인 구글 파일 시스템(GFS)의 영향을 받아서 하둡 분산 파일 시스템(HDFS)과 파일 분석을 위한 맵리듀스를 구현하였다.
하둡의 특징
로그, 텍스트, 이미지 등의 비정형 데이터를 다루는데 유리하게 되어 있다.
실시간 처리보다는 배치처리에 적합하다.
하둡의 구조
하둡의 분산 파일 시스템은 네임노드(Namenode), 데이타노드(Datanode)로 구성된다.
네임노드가 마스터이고 데이타노드가 슬레이브이다.
네임노드가 데이타노드의 위치를 메타데이터로 관리하고 있으며, 네임노드에 이상이 생길 경우 시스템에 문제가 발생 할 수 있기 때문에 세컨더리네임노드(Secondary Name Node)가 존재한다.
데이타노드의 정보는 분산 환경에 유리하도록 블록 단위로 관리된다. 기본적으로 64Mb 단위로 나누어 진다.
하둡에 데이터가 저장될 때 데이타노드의 데이터는 3군데에 동일한 데이터를 복사하여 저장된다. 이는 하둡이 기본적으로 시스템의 오류 상황에 대처할 수 있게 설계되었기 때문이다.
맵리듀스는 잡트래커(JobTracker)와 태스크트래커(TaskTracker)로 구성된다.
잡트래커가 마스터이고 태스크트래커가 슬레이브이다.
잡트래커가 사용자의 명령을 받아서 데이터를 분석하기 위한 잡을 생성하고, 이를 태스크트래커에게 알려서 작업을 처리하게 한다. 태스크 트래커는 로컬의 파일, DB 정보 등을 이용하여 데이터를 분석하게 된다. 이 과정에서 데이타노드의 데이터를 이용한다.
하둡의 서브 프로젝트
하둡에는 여러가지 서브프로젝트가 존재한다.
Hive
하이브는 맵리듀스를 SQL과 유사한 HiveQL을 이용하여 처리할 수 있게 도와주는 프로젝트이다.
사용자는 쿼리문을 이용하여 맵리듀스를 실행하고, 이 결과가 하둡에 파일로 저장되는 형식이다.
Sqoop
RDBMS와 데이터 연계를 위한 프로젝트이다. 오라클 테이블의 정보를 파일로 추출하고 이를 하둡에 관리하거나 그 반대의 기능을 처리한다.
Flume
서버의 로그를 실시간으로 집계하기 위한 프로젝트이다.
마이크로소프트웨어 - http://www.imaso.co.kr/?doc=bbs/gnuboard.php&bo_table=article&wr_id=40766
하둡 정리 - http://petrus-clelab.iptime.org:8012/wordpress/wp-content/uploads/2012/06/Hadoop_Guide_ext1.pdf
'개념' 카테고리의 다른 글
NoSQL (0) | 2013.08.14 |
---|---|
BI(Business Intelligence) (0) | 2013.08.14 |
아마존 AWS, EC2, EMR, S3 소개 (0) | 2013.07.02 |
[개념] OLTP, OLAP, Data Warehouse, Data Mart (1) | 2013.06.19 |
Apache vs Tomcat (0) | 2013.06.19 |