IT Insight

빅데이터 처리를 위한 IT기술

2017.05.11 09:30

빅데이터는 다양한 형태의 데이터가 매우 빠르게 쌓입니다. 빅데이터는 기존 데이터가 쌓이는 방식보다 훨씬 많은 양의 데이터가 쌓여, 그 크기가 엄청난데요. 그만큼 단순히 스프레드시트와 개인 PC로 데이터를 다루기는 한계가 있습니다. 그렇기 때문에, 그 범위를 넘어 거대해진 데이터를 효율적으로 처리하는 방법을 찾고 있습니다.



 빅데이터 처리에 특별한 기술이 필요한 이유

빅데이터 처리를 위해서는 강력한 컴퓨팅 파워를 가지고 빠르게 데이터를 처리할 수 있는 하드웨어가 필요합니다. 이 문제를 해결하는 방법은 하드웨어를 훨씬 좋은 성능의 장비로 대체하는 Scale-up 방식과 여러 대의 하드웨어를 연결하여 병렬적으로 데이터를 처리하는 Scale-out 방식이 있습니다.

Scale-up 방식은 비용 대비 효과가 작고, 매번 데이터를 새로운 하드웨어로 옮겨줘야 하므로 적용이 힘든 면이 있습니다. 그런 이유로 대부분 기업은 데이터를 효과적으로 관리하기 위해 Scale-out 방식을 적용하고 있는데요. 단순히 여러 대의 컴퓨터를 연결하여 빅데이터를 처리하는 것이 아니라 여러 대를 함께 이용하기 때문에, 이를 위한 하드웨어와 소프트웨어가 필요합니다.


먼저, 엄청난 양의 데이터를 저장하고 처리할 수 있는 별도의 데이터센터가 필요합니다. 하드웨어 용량을 늘리는 비용을 줄이기 위해 클라우드 서비스를 활용하여 scale-out에 필요한 하드웨어를 대체하는 것도 방법입니다. 이와 같은 방법으로 인터넷 상에서 여러 대의 컴퓨터들을 연결하여 빅데이터를 처리할 수 있습니다.


또한, 이렇게 분산된 컴퓨터를 연결해 주는 소프트웨어도 필요할 것입니다. 여러 서버에서 분산되어있는 처리 시스템을 통합하여 관리하기 위한 플랫폼 역할을 하는 것인데요. 큰 데이터 처리계산을 여러 개로 나누어서 각각의 서버에서 처리한 뒤, 이를 다시 통합하여 하나의 결과로 나타내주는 소프트웨어입니다. 



 빅데이터 처리를 위한 하드웨어

빅데이터는 실시간으로 계속해서 축적되기 때문에 scale-out 방식을 택한다 해도 문제가 발생할 수 있습니다. 모든 기업이 데이터센터를 독자적으로 운영한다면, 서버를 설치할 공간이나 비용이 부족해지기 때문입니다. 급격히 증가하는 데이터를 저장하고 운영하기 위해 효율적으로 컴퓨팅 파워를 사용할 방법이 필요합니다. 이를 돕기 위해 클라우드 컴퓨팅은 인터넷 공간에서 대규모의 IT 자원을 분산 처리할 수 있도록 해줍니다. 


클라우드 컴퓨팅 기술 적용으로 데이터 분산처리에 필요한 컴퓨팅 인프라를 온디맨드(on-demand) 서비스처럼 사용할 수 있습니다. 저장공간이 필요할 때마다 데이터 저장을 위한 가상 컴퓨터를 손쉽게 이용할 수 있는 것인데요. 그렇게 하면, scale-out이 쉬워집니다. 또한, 많은 양의 데이터가 데이터 관리를 위해 만들어진 클라우드 데이터 센터에서 저장되기 때문에, 서비스 제공자는 데이터의 안정성에 대한 걱정 없이 원하는 작업을 수행할 수 있습니다. 


이와 같은 이유로 빅데이터 처리를 위해 컴퓨팅 파워를 높이는 방법인 여러 대의 컴퓨터를 연결하는 병렬 컴퓨팅이 주목받고 있습니다. 가상의 컴퓨터를 클라우드 서비스를 통해 사용하고자 할 때, 가상의 하드웨어를 연결하기 위한 소프트웨어는 필수인데요. 다음으로는 병렬 컴퓨팅을 하기 위한 소프트웨어 IT기술이 무엇이 있는지 살펴보도록 하겠습니다. 



 빅데이터 처리를 위한 소프트웨어

빅데이터 알고리즘 ‘Mapreduce’

Mapreduce 알고리즘은 구글에서 발표한 빅데이터를 처리하는 방법입니다. Mapreduce 알고리즘은 말 그대로 Map과 Reduce의 두 가지 역할을 합니다. 데이터를 매핑(Mapping)하고, 합하여 크기를 줄여주는 알고리즘이죠. 

예를 들어, 도시 기온과 관련해 수 백만 개의 데이터가 들어있는 파일 여섯 개에서 각 도시의 최고 기온을 뽑아낸다고 가정하겠습니다. Mapreduce 알고리즘을 활용하면 각 여섯 개의 파일에 하나의 매퍼(Mapper)가 할당되어 각 도시의 최고기온을 찾아낼 것입니다. 이렇게 각 파일에서 추려진 데이터를 다시 한번 통합해서 살펴보면서 각 도시의 진짜 최고기온을 찾아낼 수 있습니다. 


Map 과정은 데이터를 도시와 온도 한 쌍으로 만들어주고, 한 파일에서 찾아진 각 도시의 최고기온을 찾습니다. 이 최고 기온에 대한 데이터는 다시 Reduce 과정으로 인풋 됩니다. Reduce 과정은 이 쌍들의 데이터를 받아서 하나의 결과로 통합해줍니다. 

이 알고리즘은 빅데이터 프로세싱을 위한 가장 기본적인 알고리즘이 됩니다. 많은 양의 데이터에서 원하는 데이터를 찾고, 키워드가 포함된 개수를 세어보는 등의 행위를 하기 위해 이 알고리즘을 활용하여 데이터 프로세싱을 하는 것입니다. 

 빅데이터용 오픈소스 'Hadoop'

하둡은 빅데이터에 관심이 있으신 분들은 한 번쯤은 들어보셨을만한 대표적인 빅데이터 처리 오픈소스입니다. 하둡과 mapreduce 알고리즘은 뗄 수 없는 사이입니다. 빅데이터 처리를 하기 위해서는 기존 데이터와 저장하는 법, 처리하는 법이 다르다고 합니다. 하둡은 크기가 매우 크거나, 양이 매우 많은 묶음의 파일들을 여러 개의 저장공간으로 분산시켜주는 역할과 mapreduce 알고리즘을 활용하여 빅데이터를 처리하는 역할을 해줍니다. 

하둡은 HDFS(Hadoop Distributed File System)를 통해 여러 저장소에 데이터들을 저장합니다. 거대한 분산시스템을 관리하기 위해 파일 시스템을 차용한 것입니다. 이 시스템 안에서는 연결된 데이터 저장소들에 데이터를 할당해주는 매니저(name node)에 의해서 데이터가 나뉘고, 각 저장소(data node)에 데이터가 저장됩니다.

l Hadoop(출처: hadoop.apache.org/)


Mapreduce 알고리즘이 바로 HDFS 시스템을 사용하기 위해 쓰이는 알고리즘입니다. 데이터를 처리장치에 스케줄을 정해서 할당해주는 매니저(Job tracker)와 데이터를 처리하고 나서 결과를 보고하는 일꾼(task tracker)이 있습니다. 


즉, 하둡으로 연결된 각각의 서버들은 모두 빅데이터를 저장하고 처리(mapreduce) 하기 위한 저장소(data node)와 처리자(task tracker)를 가지고 있고, 분산된 서버들을 통합적으로 관리하는 매니저가 ‘name node’와’ job tracker’입니다. 


빅데이터라는 단어가 유행을 한 지는 꽤 오래되었지만, 빅데이터가 어느 정도의 크기인지 잘 알지 못하는 사람들도 많습니다. 적어도 10테라바이트가 넘는 데이터가 있을 때부터 빅데이터 처리를 한다고 이야기하는데요. 이때 하둡을 쓰는 것이 효과적이라고 합니다. 이처럼 잡다하게 양이 많은 비정형적인 데이터들을 우리가 알아볼 수 있는 데이터로 만드는 데 필요한 것이 빅데이터 기술입니다. 


앞서 소개한 기술들은 파악할 수 없을 정도로 많은 빅데이터를 분석에 용이하게 만들어주는 툴이라고 할 수 있습니다. 이 기술들을 통해서 빅데이터를 분석 가능한 데이터로 바뀌고, 사람들이 인사이트를 뽑아내어 유의미한 정보가 추출되는 것입니다. 


테라바이트를 넘어 페타바이트 규모로 쌓이는 데이터를 처리하여 기업과 기관의 목적에 맞는 인사이트를 뽑아내기 위해서는 데이터의 크기에 걸맞는 하드웨어와 소프트웨어 기술이 필요하다는 인식부터 정립되어야 빅데이터 활용을 위한 준비를 마쳤다고 할 수 있을 것입니다.

최근, 언론을 비롯해 대학, 기업 등에서도 쉽게 '빅데이터'라는 단어를 만나보실 수 있습니다. 그 만큼 많은 분야에서 관심을 받고 있다고 할 수 있는데요. 단순히 많은 양의 데이터를 뜻하는 '빅데이터'라는 용어보다 중요한 것은 이를 읽어내어 인사이트를 추출하는 능력일 것 같습니다. 4차 산업혁명 시대에서 필요한 빅데이터 분석 능력에 관심을 가져보시는 것은 어떨까요?
 

글 | LG CNS 대학생기자단 임다은



* 해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 LG CNS 블로그에 저작권이 있습니다.

* 해당 콘텐츠는 사전 동의없이 2차 가공 및 영리적인 이용을 금하고 있습니다.

저작자 표시 비영리 변경 금지
신고
Posted by IT로 만드는 새로운 미래를 열어갑니다 LG CNS
위로