빅데이터 분석이 쉬어진 것은 하둡이 나오면서부터입니다.
하둡은 대용량이 데이터를 적은 비용으로 더 빠르게 분석할 수 있는 플랫폼이며, 빅데이터 처리와 분석을 위한 플랫폼 중 사실상 표준으로 자리잡고 있습니다.
여러 대의 컴퓨터로 데이터를 분석하고 저장하는 방식으로 분석에 필요했던 많은 비용과 시간을 단축시킬 수 있게되었습니다.
하둡은 여러 개의 컴퓨터를 하나로 묶어 대용량 데이터를 처리하는 기술로, 수천 대의 분산된 x86 장비에 대용량 파일을 저장할 수 있는 기능을 제공하는 분산파일 시스템(HDFS)와 저장된 분산 파일을 분산된 서버의 cpu와 메모리 자원을 이용하여 빠르게 분석하는 맵리듀스 플랫폼으로 구성되어 있습니다.
하둡은 정형 데이터 및 사진 영상 등의 비정형 데이터를 효과적으로 처리하는 오픈 소스 빅데이터 솔류션으로 포춘 500대 기업 모두가 하둡을 활용하고 있을 정도로 업계에서는 "빅데이터가 곧 하둡"이라고 표현합니다.
하둡 생태계가 이렇게 확장할 수 있던 요인은 아마존, 마이크로 소프트, IBM, 오라클 등의 여러 업체들이 하둡을 적극 활용했기 때문인데요.
하둡 관련 오픈소스 솔루션들은 해마다 발전하여 하둡과 연동된 하둡 생태계를 구성하여 "하둡 에코시스템"이라고 불립니다.
서브 프로젝트 대부분 동물이름과 관련되어 있으며 이를 관리하는 것이 바로 주키퍼입니다.
분산 환경에서 서버간의 상호 조정이 필요한 다양한 서비를 제공하는 시스템입니다.
분산 동기화를 제공하고 그룹 서비스를 제공하는 중앙 집중식 서비스로 알맞은 분산처리 및 분산환경을 구성하는 서버 설정을 통합적으로 관리합니다.
작업 스케줄링 및 클러스터 리소스 관리를 위한 프레임워크로 맵리듀스, 하이브, 임팔리, 스파크 등 다양한 애플리케이션 들은 yarn에서 작업을 실행합니다.
클라우드 환경에 대한 리소스 관리
Mesos는 Linux 커널과 동일한 원칙을 사용하며 컴퓨터에 API를 제공합니다.
페이스북, 트위터, 이베이 등 다양한 기업들이 메소스 클러스터 자원을 관리하고 있습니다.
HBase는 구글 Bigtable을 기반으로 개발된 비관계형 데이터베이스이며, Hadoop 및 HDFS 위에 Bigtable과 같은 기능을 제공하게 됩니다.
네이버는 라인메신저에 HBase를 적용한 시스템 아키텍처를 발표하기도 했습니다.
애플리케이션 데이터에 대한 높은 처리량의 액세스를 제공하는 분산 파일 시스템
칼럼 기반 스토리지로 하둡 에코 시스템에 새로 추가되어 급변하는 데이터 대한 빠른 분석을 위해 설계되었습니다. 클라우데라에서 시작된 프로젝트로 2015년 말 아파치 인규베이션 프로젝트로 선정되었습니다.
Chukwa는 분산 환경에서 생성되는 데이터를 안정적으로 HDFS에 저장하는 플랫폼입니다.
대규모 분산 시스템을 모니터링하기 위한 시스템으로, HDFS 및 MapReduce에 구축되어 수집된 데이터를 최대한 활용하기 위한 모니터링 및 유여한 툴킷을 포함합니다.
Flume은 많은 양의 데이터를 수집, 집계 및 이동하기 위한 분산형 서비스입니다.
페이스북에서 개발한 데이터 수집 플랫폼이며, Chukwa와 다르게 데이터를 중앙 서버로 전송하는 방식이며, 최종 데이터는 다양한 저장소로 활용할 수 있습니다.
카프카는 데이터 스트리밍을 실시간으로 관리하기위한 분산 시스템으로 대용량 이벤트 처리를 위해 개발되었습니다.
하둡에 저장된 데이터를 맵리듀스 프로그램을 만들지 않고 SQL과 유사한 스크립트를 이용해 데이터를 처리, 맵리듀스 API를 매우 단순화한 형태로 설계되었습니다.
분석 기계학습에 필요한 알고리즘을 구축하기 위한 오픈소스 프레임워크이며, 클러스터링, 필터링, 마이닝, 회귀분석 등 중요 알고리즘을 지원하고 있습니다.
대규모 데이터 처리를 위한 빠른 속도로 실행시켜주는 엔진입니다.
스파크는 병렬 애플리케이션을 쉽게 만들수 있는 80개 이상의 고급 연산자를 제공하며, 파이썬, R 등에서 대화형으로 사용할 수 있습니다.
하둡기반 분산 엔진으로, 맵리듀스를 사용하지 않고 c++로 개발한 인 메모리 엔진을 사용하여 빠른 성능을 보여줍니다.
하둡 기반 데이터 솔루션으로, 페이스북에서 개발한 오픈소스로, 자바를 몰라도 데이터 분석을 할 수 있게 도와줍니다.
SQL과 유사한 HiveQL이라는 언어를 제공하여 쉽게 데이터 분석을 할 수 있게 도와줍니다.
맵리듀스는 대용량 데이터를 분산처리하기 위한 프로그램으로 정렬된 데이터를 분산처리(Map)하고, 이를 다시 합치는(reduce)과정을 거칩니다.
하둡에서 대용량 데이터 처리를 위한 기술 중 큰 인기를 누리고 있습니다.