A Column

[이응수의 IT노트] 빅데이터의 3대요소와 하둡 프로그래밍이란?

남지숙

view : 895

 


[이응수의 IT노트] 빅데이터의 3대요소와 하둡 프로그래밍이란?


 

안녕하세요. 중앙HTA의 이응수 강사입니다.

오늘부터 빅데이터를 주제로 IT노트를 한장한장 만들어가려고 합니다.

평소에 빅데이터에 관심이 많으신 분들의 많은 관심 부탁드립니다. ^^

먼저 빅데이터가 무엇인지 먼저 알아보도록 하겠습니다.


1. 빅데이터란?

 

빅데이터는 기존의 데이터베이스 관리도구를 사용해서 데이터를 수집, 저장, 관리, 분석할 수 있는 역량을 넘어서는 데이터를 말하기도 하고, 다양한 종류의 데이터로부터 저렴한 비용으로 가치가 있는 정보를 추출하기 위해서 데이터의 수집, 저장, 분석을 지원하는 차세대 기술 및 아키텍처를 말하기도 합니다.


빅데이터를 이해하기 위해서는 빅데이터의 3대 요소에 대해서 알아볼 필요가 있습니다. 아래 그림은 빅데이터의 3대요소를 나타냅니다.

 


 

빅데이터의 3대 요소는 Volume(), Velocity(속도), Variety(다양성)입니다.

빅데이터의 3대 요소 중 두 가지 이상만 충족한다면 빅데이터라고 볼 수 있습니다.

(1) Volume()

빅데이터는 일반적으로 수십 테라바이트(terabyte) 혹은 수십 페타바이트(petabyte) 이상의 크기를 가집니다.

기존의 데이터베이스는 이런 대용량의 데이터를 소화하기 힘들기 때문에 확장가능한 분산형 파일시스템을 이용해서 데이터를 저장하고,

분석하는 컴퓨팅 기법이 필요합니다. 대표적인 기술로 구글의 GFS(Google File System), 아파치 하둡 등이 있습니다.

(2) Velocity(속도)
빅데이터를 속도 측면에서 접근한 것이 Velocity. 데이터가 생성되고, 저장되며, 시각화되는 과정이 얼마나 빨리 이루어져야 하는지에 대한 정의입니다.

데이터의 처리방식은 실시간 처리방식과 배치처리 방식으로 나눌 수 있습니다. 수집되는 데이터의 특성에 다양한 수집방법, 분석, 시각화 기술을 사용할 수 있습니다.

(3) Variety(다양성)
빅데이터는 다양한 종류의 데이터로 구성될 수 있습니다.

데이터의 종류는 크게 정형화 정도에 따라서 정형 데이터, 반정형 데이터, 비정형 데이터로 나눌 수 있습니다.

정형 데이터는 고정된 필드에 저장되는 데이터를 의미하며, 데이터베이스에 저장할 수 있는 데이터들이 정형 데이터에 해당됩니다.

반정형 데이터는 XML, HTML, 로그처럼 고정된 필드는 없지만, 일정한 규칙을 가지고 있는 데이터가 해당됩니다.

비정형 데이터는 고정된 형식이 없는 데이터를 의미하며, sns나 유투브에 올린 사진과 오디오 데이터들이 이에 해당됩니다.

빅데이터는 이런 비정형 데이터도 처리할 수 있는 능력을 가지고 있어야 합니다.


2. 하둡

하둡은 대용량 데이터를 병렬 분산 처리할 수 있는 자바 기반의 오픈소스 소프트웨어 입니다.

하둡은 분산 파일 시스템인 HDFS(Hadoop Distributed File System)에 데이터를 저장하고, 분산 처리 시스템인 MapReduce로 데이터를 분석합니다. 하둡은 10 ~ 1000대의 서버로 하나의 클러스터를 구성하여 대용량의 데이터를 저장하고 처리하는 것도 가능합니다.


하둡은 자바 기반으로 개발되었기 때문에 하둡을 설치/운용하기 위해서 특별한 서버나 장비가 필요하지 않습니다.

하둡은 클러스터를 구성하는 서버 대수를 추가하기만 하면 저장 용량을 확장하거나 분산 처리 성능을 향상시킬 수 있는 스케일 아웃(Scale-out)을 지원합니다

관계형 데이터베이스가 낮은 대기 시간으로 작은 데이터 셋을 처리하는 것이 목표라면, 하둡은 대용량의 데이터를 대상으로 일괄 처리를 실행한다.

 

 


하둡은 아파치 소프트웨어 재단의 최상위 프로젝트 중 하나입니다.

대규모 데이터 처리를 필요로 하는 많은 개발자들이 개발에 직접 참여하고 있어서 계속 발전하고 있습니다.

3. 하둡 에코 시스템


하둡 코어 프로젝트는 분산 데이터 저장을 지원하는 HDFS와 데이터 분석처리를 지원하는MapReduce입니다.

하둡의 코어 프로젝트를 지원하는 다양한 서브 프로젝트가 제공되는데, 이를 하둡 에코시스템이라고 합니다.

하둡 에코시스템은 아래 그림과 같이 다양한 프로젝트로 구성되어 있습니다.

 

(1) ​Zoo keeper는 분산 코디네이터입니다. 분산환경에서 서버사이의 상호작용이 필요한 서비스를 제공하고, 하나의 서버에만 서비스가 집중되지 않게 하며하나의 서버에서 처리한 결과를 다른 서버와 동기화 시킵니다Zoo keeper는 운영서버에 문제가 발생했을 때 대기중인 다른 서버를 운영서버로 전환시켜서 서비스가 지속되도록 하며, 분산환경을 구성하는 환경설정정보를 통합적으로 관리할 수 있게 합니다.

(2) Oozie는 워크플로우 관리를 지원하는 자바 웹 애플리케이션입니다. MapReduce 작업이나 Pig 작업으로 구성된 워크플로우를 제어합니다.

​(3) Hbase HDFS에서 운용되는 컬럼기반 데이터베이스입니다. 실시간 랜덤조회 및 업데이트가 가능하고, 각 프로세스는 데이트를 비동기적으로 업데이트할 수 있습니다.

(4) Pig는 분산 데이터를 처리하는 복잡한 MapReduce 프로그램을 대체하는 피그라틴(Pig Latin)이라는 자체 언어를 제공합니다. 피그라틴은 MapReduce API를 매우 단순화시킨 SQL과 유사한 형태의 언어입니다.

(5) Hive는 하둡 기반의 데이터 웨어아우징 솔루션입니다. SQL과 매우 유사한 HiveSQ 쿼리 언어를 제공합니다. HiveQL를 이용하면 자바를 다룰 줄 모르는 데이터 분석가도 HDFS에 저장된 데이터를 분석할 수 있습니다. HiveQL은 내부적으로 MapReduce Job으로 변환되어 실행됩니다.

(6) Mahout은 하둡기반의 데이터 마이닝 알고리즘을 구현한 오픈소스 프로젝트입니다. 다양한 기계학습 라이브러리를 제공하며, 비즈니스 환경에 맞게 최적화해서 사용할 수 있습니다.

(7) HCatalog는 하둡으로 생성한 데이터를 공유할 수 있는 테이블 및 스토리지 공유 서비스를 제공합니다. 하둡 에코시스템사이의 데이터모델 공유를 지원하기 때문에 상호운영성이 향상됩니다. Hive에서 생성한 테이블이나 데이터모델을 Pig MapReduce에서 쉽게 이용할 수 있게 합니다.

​(8) Avro RPC(Remote Procedure Call)와 데이터 직렬화를 지원하는 프레임워크입니다. JSON을 이용해서 언어 중립적 스키마을 정의합니다. 한 언어로 직렬화된 데이터를 다른 언어에서 읽을 수 있게 합니다.

(9) Chukwa는 분산환경에서 생성되는 데이터를 HDFS에 안정적으로 저장하는 플랫폼입니다. 분산된 각 서버에 에이전트를 실행하고, 콜렉터가 에이전트로부터 데이터를 받아서 HDFS에 저장합니다

(10) Flume Chukwa와 유사합니다. Flume은 전체 데이터 흐름을 관리하는 마스터 서버가 있기 때문에 데이터를 어디서 수집하고, 어떤 방식으로 전송하고, 어디에 저장할 것인지를 동적으로 변경할 수 있습니다.

(11) Scribe는 페이스북에서 개발한 데이터 수집 플랫폼입니다. 데이터를 중앙 집중 서버로 전송하는 방식입니다. 최종 데이터는 HDFS 외에 다양한 저장소에서 활용할 수 있습니다.

(12) Sqoop은 대용량 데이터 전송 솔루션입니다. HDFS, RDBMS, NoSQL 등과 같은 다양한 저장소에 대용량 데이터를 신속하게 전송하는 방법을 제공합니다.

(13) Hiho Sqoop와 유사한 데이터 전송 솔루션입니다. 하둡에서 데이터를 가져오기 위한 SQL을 지정할 수 있으며, JDBC 인터페이스를 지원합니다

(14) Impala는 하둡기반의 분산 쿼리 엔진입니다. 데이터 조회를 위한 인터페이스로 HiveQL를 사용하며, 수초 내에 질의결과를 확인할 수 있습니다.

(15) Tajo는 하둡기반의 데이터 웨어하우스 시스템입니다. MapReduce가 아닌 자체 분산처리 엔진을 사용하며 표준 SQL을 지원합니다.

(16) HDFS, AWS S3, Hbase, DBMS 등에 저장된 데이터를 표준 SQL로 조회할 수 있고, 다른 종류의 저장소 간의 데이터 조인처리가 가능합니다.

하둡은 위와 같이 코어프로젝트와 다양한 서브 프로젝트가 존재합니다. 이를 하둡 생태계라고 부르기도 합니다.

다음에는 하둡 서버를 설치하는 방식을 알려드리고, HDFS 아키텍처를 살펴보도록 하겠습니다.

그럼 더운데 수고하시고 좋은 하루 보내세요 ^^

  


저작권자(c)중앙에이치티에이(주). 무단전재-재배포금지>

 


먼저 비밀번호를 입력하여 주세요.

창닫기확인

TOP