hadoop 총정리
#
Find similar titles
- 최초 작성자
- 최근 업데이트
Structured data
- Category
- Programming
Table of Contents
서론. 빅데이터에 대한 화두 #
지난 16년, 이세돌의 신의 한수를 기억하는가. 이 경기를 통하여 많은 사람들이 빅데이터라는 단어를 접할 수 있었다. 인공지능, 자율주행 등 미래를 대표할 수 있는 최첨단 기술들이 바로 이 빅데이터에서 시작한다. 어마어마한 양의 데이터에서 유의미한 정보를 도출하고 이를 처리하는 기술은 인간에게 신의 두뇌를 선물하는 것인지도 모른다.
하지만 처리해야할 데이터가 많아질수록 데이터를 처리할 컴퓨터의 능력이 좋아져야 한다. 상상할 수도 없는 고가의 슈퍼컴퓨터를 사용하여 유의미한 결과를 도출한다 해도 데이터양이 더 늘어난다면 결국에는 한계에 도달한다. 슈퍼컴퓨터를 증축하며 유지할 수 있는 조직이 지구상에 몇이나 될지 모르겠다.
그럼에도 한국정보화진흥원의 빅데이터 동향과 이슈에 따르면 지난 2017년 세계 기준 빅데이터를 도입하고 활용하는 기업이 53%에 이른다. 종업원수 5천명이 넘는 기업 중에는 70%가 빅데이터를 이미 활용하고 있다. 또한 빅데이터를 활용하지 않는 기업들 중의 40%가 2018년에는 빅데이터를 활용할 예정이라고 한다. 빅데이터 처리는 컴퓨터의 능력과 비례한다고 했는데 어떻게 가능한 것일까.
하둡이란 #
그림1 하둡 출처: http://platum.kr/archives/39285
하둡은 앞서 언급한 문제를 가능하게 한 일등공신이다. 빅데이터의 열쇠로 대변되는 하둡은 빅데이터 인프라 기술 중에 하나로 분산처리를 통해 수많은 데이터를 저장하고 처리하는 기술이다. 일부 사례에서는 하둡이 적용된 시스템이 슈퍼컴퓨터를 능가한다고도 할 정도로 효과가 좋다.
하둡의 장점은 방대한 양의 데이터를 처리하는 것에 그치지 않는다는 점이다. 데이터를 분산처리 하는 수를 늘리거나 줄임으로써 저렴한 비용으로 어떠한 기업이든 원하는 크기의 저장소를 가질 수 있다는 점이다. 이러한 확장성은 다양한 분야에서 빅데이터를 접근할 수 있도록 하였다.
- 하둡에 대한 개념글은 하둡페이지를 참고할 수 있다.
하둡은 어떻게 작동하는가 #
하둡 프레임워크는 몇 가지 프레임워크로 이루어져 있다. 이중에서도 가장 핵심적인 기능을 하는 것은 맵리듀스(MapReduce) 프레임워크와 분산형 파일시스템(HDFS)이다.
그림2 맵리듀스와 분산형 파일시스템 출처: http://skccblog.tistory.com/1883
맵리듀스의 원리 #
상식적으로 1명이 100개를 훑어보는 것과 100명이 1개씩 훑어보는 것이 빠를 것이다.이것이 분산처리의 핵심이지만 100명이 훑어본 결과를 취합하고 정리하는 소요가 있게 마련이다. 또한 탐색할 양이 101개라거나 1개의 길이가 서로 다르다면 이를 동일한 업무크기로 나누는 일도 쉽지가 않을 것이다.
맵리듀스는 이러한 처리를 돕는 역할을 한다. 이름 그대로 Map단계와 Reduce단계로 이루어진다. 먼저 Map단계에서는 흩어져 있는 데이터를 key, value로 데이터를 묶어준다. 예를 들어 key는 몇 번째 데이터인지, value는 값을 추출한 정보를 가진다. 그리고 Reduce단계는 Map단계의 key를 중심으로 필터링 및 정렬한다. 하둡에서는 이 Map과 Reduce를 함수를 통해서 구현하고 맵리듀스 잡을 통해 제어한다.
분산형 파일시스템의 원리 #
아파치 하둡의 부사장인 아룬 머시는 하둡에서는 하둡 네트워크에 연결된 아무 기기에나 데이터를 밀어 넣는다고 표현했다. 스키마를 통해 체계적으로 정리된 RDBMS에 비교하면서 하둡의 파일 저장소를 돼지우리라고 표현할 정도이다. 하지만 정말로 하둡은 분산형 파일시스템을 통하여 대용량의 파일을 블록 구조로 우겨 넣을 뿐이다.
분산형 파일시스템은 기존의 분산처리시스템과는 다르다. 여러 대의 머신이 데이터를 처리한다는 점에서 같지만 MPI(Message Passing Interface)를 사용하는 기존의 분산처리시스템은 일부 컴퓨터가 고장나는 경우 시스템이 작동하지 않고 인터페이스가 복잡하여 프로그래밍하기 힘든 문제가 있었다. 하지만 하둡 시스템의 구성요소 중 하나인 분산파일시스템은 같은 데이터를 분산 처리하되 3개의 카피를 나누어 저장해둔다. 따라서 한 컴퓨터에서 고장이 발생하거나 느려지더라도 데이터에 접근할 수 있다.
하둡 프레임워크 #
그림3 하둡 프레임워크 출처: http://www.itworld.co.kr/print/73626
하둡은 효율적인 데이터 처리와 분석을 위해 맵리듀스, 분산형 파일시스템 말고도 많은 구성요소로 포함된다. 제시된 그림처럼 피그(돼지), 하이브(벌집) 등 동물이름의 프레임워크가 눈에 띈다. 흡사 하둡 생태계를 표현하고 있는 것 같다. 하둡의 핵심 전략이 'Easy to Use'인 만큼 각 툴들은 여러 회사에서 인용할 때 활용성을 더하기 위한 소프트웨어 들이다. 이를 하둡 에코시스템이라고 한다. 이 중 몇 개를 다음 편에서 자세하게 다루어 보고자 한다.
앞으로 다룰 내용 #
하둡 시스템에 대한 글은 총 4편으로 구성될 예정이다. 이번 편에서는 하둡에 대한 이해를 돕기 위해 빅데이터 환경과 하둡의 기초에 대해서 알아 보았다. 2편에서는 주요 하둡 에코시스템에 대해 알아보고 3편에서는 하둡의 설치와 간단한 활용 예제를 소개할 예정이다. 4편에서는 하둡이 어떻게 활용되며 실제 배치는 보통 어떻게 이루어 지는지 언글할 계획이다.
참고출처 #
관련 키워드 #
하둡, HADOOP, Hadoop, hadoop, MapReduce, HDFS