string(27) "/blog/?uid=141&mod=document"

HOME

ABOUT US

Blog

Blog

Blog

빅데이터(Big Data)와 하둡(Hadoop)

2021.01.18

빅데이터(Big Data)는 빠른 속도로 쏟아져 오는 다양한 종류의 데이터를 수집하고 분석하여 가치를 찾아내는 거대한 데이터 세트라고 볼 수 있다. 인공지능, 자율주행 등과 같이 머신러닝이 기반이 되는 첨단 IT기술에서 수많은 데이터들을 학습시키기 위해 빅데이터의 기술이 요구되고 있으며, 특히 글로벌 마케팅 시장에서 대세로 떠오른 애드테크(ad tech, 광고기술)는 빅데이터와 머신러닝의 IT기술을 결합하여 더욱 정교하게 마케팅 목적과 소비자에게 최적화된 광고를 전달하고 있다.

 

 

20210118161740_r45oy3y.png

미국의 시장조사기관 가트너(Gartner)사는 빅데이터의 특징을 Velocity(속도), Volume(크기), Variety(다양성) 으로 3V로 정의하고 있다. 하지만 오늘날 많은 기업에서 빅데이터를 데이터들의 단순 거대 집합체를 넘어 데이터의 고유 Value(가치)와 데이터의 Veracity(정확성)을 더해 총 5V를 기준으로 데이터 분석의 효율성을 높여 빅데이터를 활용하고 있다.

 

빅데이터를 이용하여 필요한 데이터를 수집하고 학습시켜 최적화된 데이터를 추출하기 위해 수많은 데이터들을 모을 수 있는 저장소가 필요하다. 실제 비정형 데이터 분석기업은 연간 35억 건의 데이터를 처리하며 이를 저장하기 위해 20TB가 넘는 스토리지를 활용하고 있다. 하지만 계속하여 증가하는 데이터와 음성, 이미지, 영상과 같은 대용량 데이터를 저장하기 위해서는 물리적인 스토리지 확장은 한계가 있게 된다. 이에 대용량 데이터들을 관리하고 저장하기 위해 하둡(Hadoop)과 같은 오픈소스 플랫폼을 통해 데이터를 분산 저장하고 효율적으로 분석 처리할 수 있는 방안이 주목 받기 시작했다.

 


[하둡과 빅데이터]

20210118162337_ks8s2pr.png

하둡은 여러개의 컴퓨터를 하나인 것처럼 연결하여 대용량 데이터를 저장할 수 있는 분산 파일 시스템 환경을 제공한다. 그렇기 때문에 대용량의 비정형 데이터 저장 및 분석에도 효율적인 것은 물론 연결된 노드만큼 부하를 분산시켜 데이터를 처리하게 되어 처리 속도를 높이고 각 서버의 부하를 줄여준다. 또한 하둡을 도입함으로써 기업은 빅데이터 분석에 들어가는 초기 비용을 줄일 수 있게 해준다.

[하둡의 장점]

20210118161858_xu9vhxa.png


1. 분산파일 시스템 환경을 제공하여 대용량의 파일 저장 가능

2. 다수의 분산된 노드 및 서버를 단일화된 클러스터로 구성함으로써 부하 발생이 없음

3. 별도의 소프트웨어와 하드웨어 구매 없이 무료 사용 가능

4. 서비스의 에러가 발생하여도 기존의 시스템을 유지

이러한 이유로 하둡은 많은 기업에서 거래 처리 시스템, 웹 분석과 같이 다양한 데이터를 저장하고 분석하기 위한 도구로써 사용되고 있으며, 빅데이터의 저장과 분석에 최적화되어 빅데이터 분석 플랫폼의 표준으로 사용되고 있다.

20210118161914_x5rqdhe.png
실제 미국의 페이스북은 하둡을 이용하여 대용량으로 저장된 사용자들의 사진데이터를 분산 저장하고 있으며 그 데이터 양을 약 30pb로 미국 국회 도서관의 약 3배 가량 많은 양의 데이터를 처리하고 있다. 하지만 하둡을 통해 약 2 천 여개의 분산된 서버에서 실시간으로 데이터를 처리해 사용자는 실시간으로 사진을 업로드하고 공유가 가능하게 운용되고 있다.

[하둡의 구조와 기능]

하둡은 분산파일시스템인 HDF(Hadoop Distributed File System)에 데이터를 저장하고 MapReduce를 이용해 데이터를 처리하게 된다. HDFS는 대용량의 파일을 분산된 서버에 저장하고, MapReduce는 대용량의 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 용도로 사용된다.

20210118162150_yegqcg2.png

 

HDFS의 구조는 위와 같이 NameNode, DataNode 그리고 Secondary NameNode 들로 구성되어 있다.

NameNode에는 각 DataNode에 데이터를 분산 저장하고, 복제하여 데이터의 유실을 방지한다. DataNode는 NameNode에 하트비트라는 작은 신호를 보내고 NameNode는 이 신호를 받아 DataNode의 실행 상태와 용량을 파악한다. DataNode는 데이터를 저장하고 클라이언트에서 요구하는 읽기와 쓰기 기능을 담당하고 있다.

마지막으로 Secondary NameNode에는 활성화된 NameNode의 에러가 발생하여도 시스템을 유지하기 위해 Secondary가 NameNode의 역할을 대신하여 데이터 노드에 데이터를 분산저장, 복제 기능을 담당한다.

아크데이타는 현재 Ark for CDC를 통해 실시간으로 추출된 데이터베이스의 데이터를 Ark for Bigdata를 이용하여 가공처리 한후 HDFS에 데이터를 저장하는 기능을 연구 중에 있다. 또한 HDFS 뿐만 아니라 Hive와 Kafka에도 실시간으로 데이터를 전달해줌으로써 고객사가 실시간으로 분석을 가능하게끔 기능을 제공할 예정이다.