nathan_H

Hadoop 이란? 본문

Big Data/Hadoop

Hadoop 이란?

nathan_H 2019. 6. 12. 17:09

 

바야흐로 빅데이터 시대라고 불리우고

현재 시대를 4차 산업혁명이라고 한다.

 

하지만 나는 아직까지 4차 산업혁이라고 불리는 것이

과연 맞는가라고 생각이 든다.

 

산업혁명을 판단하는 것은 시대가 지나고

과거를 돌아볼때 급격한 생산성 증대를 이루었던

기술이 도래 했던 시절을 회상하면서 바라볼때

그때 산업혁명이라고 부를수 있는게 아닐까 라는

나름의 개인적인 소견이 있다.

 

서두가 길었는데 

4차 산업혁명이든 아니든 '빅데이터' 

즉 방대한 데이터로 세상이 많이 움직이고 바뀌는 것은

틀림이 없다.

 

이에 따른 이러한 방대한 데이터를 처리하는

기술들도 많이 요구되어가고 있는데

 

그 기술중 Hadoop이라는 대표적인

빅데이터를 다루는 기술에 대해 알아볼까 한다.

 

본 내용은 순천향대학교 빅데이터 공학과

김정현 교수님 수업 및 시작하세요 하둡 프로그래밍 책을 참고 했다. 

 

 

 

 

Hadoop 이란?

 

구글에 하둡을 검색하면 귀여운 코끼리 캐릭터가

뜬금없이 나오는데 여담이지만 

하둡을 만든 개발자가 

자식이 들고 있는 코끼리 장난감을 보고 

저렇게 하둡의 이름과 상징적인 캐릭터를 정하였다고 한다.(?)

 

무튼 다시 본론으로 들어가

 

하둡이란 무엇인가??

 

앞서 말했듯이 하둡은 빅데이터, 방대한 양의 데이터를

"분산 처리"하는 기술로써 

자바 기반의 오픈 소스 프레임 워크이다.

 

 

Hadoop vs RDBS(관계형 데이터 베이스 시스템)

 

그럼 하둡과 기존 데이터 베이스 시스템과의 차이는 무엇일까?

 

- 간단하게 말하자면 처리하는 데이터의 종류라고 볼 수 잇다.

RDBS는 정형 데이터를 주로 다루고 처리하는 시스템이고

그에 반해 Hadoop은 정형, 비정형 데이터에 구분없이 

여러 대의 서버에 데이터를 저장하고, 

데이터가 저장된 각 서버에서 동시에 데이터를 처리해 

효율적으로 빠르게 처리할 수 있다.

 

 

 

Hadoop의 구성

 

하둡은 크게 두가지로 구성된다고 볼수 있는데 

 

1. 분산 저장

- HDFS(Hadoop file system)을 이용해 파일을 적당한 블록 사이즈로

나눠서 각 노드 클러스트에 저장

 

- 데이터 유실의 위험이나 사람들이 많이 접근 할때의 부하 처리를 위해

각 블록의 복자본을 만들어 저장

 

2. 분산 처리

- Map Reduce라는 프레임 워크를 이용해서 계산

- Map reduce라는 프레임 워크는 Map + Reduce라는 두가지 셩식으로 나누어짐

- Map : 함수에서 데이터 처리, Reduce :  함수에서 원하는 결과값을 계산.

 

 

Hadoop의 특성

 

하둡은 본질적으로 대용량의 데이터를 효율적으로 처리

한다는 목적으로 사용이 되는데

그안에 어떠한 특성들이 있는지 알아보자.

 

 

병렬 분산 처리 문제 자동으로 해결.

 

하둡은 병렬 분산 처리를 통해 

효율적이고 빠르게 빅데이터를 처리를 하는데

이 병렬 분산 처리중에 발생하는 

태스크 분배, 서버 고장, 태스크 재실행, 취합 출력 등의

문제 및 과정을 자동적으로 실행하고 해결해주는 특성을

가지고 있어 매우 강력하다.

 

 

기존 RDBS의 한계 극복

 일반적으로 많이 쓰이는 RDBS보다 훨씬 큰데이터를

처리하는 것에 초점이 맞춰 있기 때문에

작은 용량의 데이터들에 대해서는 비 효율적일 수 있다.

 

하지만 그에 반해  RDBS선에서 처리할 수 없는 용량의

빅데이터에 대해서는 강력한 처리 기술이 된다.

 

 

확장성 및 유연한 데이터 구조 대응

 하둡은 여러대의 서버를 활용해

병렬 분산 처리가 진행되기 때문에

단순히 서버 대수만 늘리면 처리할 수 용량과

성능이 향상되기 때문에 확장성이 우수하다

 

뿐만 아니라 처리 시점에서 데이터를 직접 정의할 수 있기 때문에

테이터 구조에 있어 대응이 유연하다.

하둡 서버 구성

그렇다면 하둡은 여러대의 서버를 이용한다고 했는데

서버의 구성은 어떻게 되어 있을까?

 

source - https://m.blog.naver.com/PostView.nhn?blogId=kiminkyu11&logNo=220173765719&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

위 그림에서 볼 수 잇듯이

크게 마스터 서버와

슬레이브 서버로 나눠서 구성이 되는데

 

마스터 서버에는 NameNode, JopTracker

슬레이브 서버는 DataNode, TaskTraker로 구성되어 있다.

 

NameNode와 DataNode는 HDFS로써 사용이되고

JopTracker와 TaskTracker는 맵리듀스에서 사용되어 진다.

 

이 내용은 나중에 자세히 살펴보도록 하겠다.

 

 

HDFS의 편리성과 신뢰성

NameNode와 DataNode로 구성된

HDFS(하둡 파일 시스템)은 사용자가 

파일이 어떻게 블록으로 분할할지 의식 할 필요없이

하둡이 자동적으로 진행을 해준다.

그리고 디스크 용량이 부족할때에는 서버만 추가하면

되기 때문에 매우 편리하다.

 

뿐만 아니라 하나의 서버가 고장나서 블록에 

접근을 할 수 없게 되어더 

다른 서버에 동일한 블록이 저장되어 있기 때문에

데이터 소실 위험이 낮다.

 

그리고 HDFS 마스터 서버인 NameNode가 

고장나면 HDFS 전체가 망가질 수 있는데

이때는 NameNode의 이중화(HA 구성)으로 해결할 수 있다.

(Secondary Node)

'Big Data > Hadoop' 카테고리의 다른 글

MapReduce  (0) 2019.06.12
HDFS Architecture  (0) 2019.06.12
HDFS란? (Hadoop File System)  (1) 2019.06.12
Comments