데이터 측면에서는 HDFS(Hadoop Distributed File System)를 통해 분산 파일 시스템을 구현했고, 프로세싱 측면에서는 MapReduce 프로그래밍 모델을 사용한다. MapReduce는 아주 큰 데이터를 분산하여 처리하는데 적합하다.
Hadoop의 데이터와 프로세싱
아래 그림은 Hadoop 1.0의 구조인데, 데이터를 담당하는 HDFS는 중복 저장(redundant)과 안정된 저장(fault-tolerant)을 담당한다. 프로세싱은 그 위의 MapReduce 모듈이 맡는데, 클러스터 리소스 관리와 데이터 프로세싱을 담당한다. 이 기반 위에 Pig, Hive와 같은 부가 서비스 혹은 사용자의 어플리케이션이 돌아가게 된다.
|
여기서 MapReduce에 대해 잠깐만 짚고 가자. MapReduce는 Map과 Reduce라는 두 단계로 진행된다. Map 단계에서 마스터 프로세스는 스레이브 노드들에 일을 나누어 준다. Map 단계의 결과는 임시파일(intermediate file)로 저장되고, 이것이 Reduce 단계의 입력으로 전해진다. Reduce 모듈은 입력된 정보들을 섞어(shuffle) 최종적인 결과를 만들어 낸다.
아래 그림에 대한 자세한 설명은 여기를 참조하자. 그리고 MapReduce에 대한 자세한 설명은 추후에 계속 된다. 오늘은 전체적인 큰 그림만 보도록 하자.
By Paul Krzyzanowski, Rutgers School |
Hadoop의 발전
2012년부터 대폭적으로 구조가 개선된 Hadoop 2.0이 릴리즈되기 시작하였다. 가장 큰 차이는 MapReduce 모듈이 YARN(Yet Another Resource Negotiator)으로 발전한 것이다. YARN은 기존에 비해 MapReduce뿐 아니라 다른 프로그래밍 모델도 적용할 수 있어 유연하고, 리소스도 훨씬 더 효율적으로 사용하도록 개선되었다.
By DeZyre |
다음 그림을 보면 Hadoop 생태계를 한눈에 정리할 수 있다. 이 중에서 Pig를 사용하면 데이터를 분석하고 프로세싱할 수 있고, Mahout을 사용하면 머신러닝(machine learning) 알고리즘을 돌려볼 수 있다. 그리고 Hive를 이용하여 SQL과 비슷한 문법으로 데이터를 조회(query)할 수 있고, 마지막으로 HBASE를 통해 칼럼 중심 데이터 저장소(columnar store)를 사용할 수 있다. 칼럼 중심 데이터 저장소에 대해서는 여기 참조.
By bagheljas, techblog.baghel.com |
Hadoop 생태계가 보다 커지고 복잡해짐에 따라 많은 도구들이 Hadoop 자체에 포함되게 되었다. 이 중에서 그래프 네트웍(graph network)에 대해 다루는 Giraph와 빠른 분석을 위해 인-메모리(in-memory) 데이터를 지원하는 Spark/Shark, 그리고 실시간 데이터 처리를 위한 스트리밍(streaming) 도구들도 중요하다.
이런 도구들을 통해 보다 더 빨리 더 많이 분석할 수 있어, 데이터에 대한 더 깊은 통찰(deeper insight)을 얻어낼 수 있다.
By DeZyre |
빅데이터를 다룰 때는 많은 난관이 기다리고 있다. 업계는 요즘 빅데이터에 재능이 있는 사람들을 원하고 있다. Hadoop을 어떻게 설치하는지 알고, Hadoop을 이용하여 분석할 줄 알며, 다양한 도구들과 플랫폼을 이해하는 인재를 찾고 있다.
여러 다양한 소스로부터 데이터를 수집하는 건 그리 간단치 않은 일이다. 이 거대한 다양하고 복잡한 데이터들을 통합하고, 조직화하고, 분석하는 것 또한 매우 어려운 일이다. 이 과정을 통해 바로 이런 것들을 배울 것이다.
By Natasha Balac |
관련글 |
- BigData.2 급변하는 빅데이터 스택
- BigData.4 하이프 사이클로 본 빅데이터
댓글 없음:
댓글 쓰기