1. 하둡(Hadoop)
- 대규모 분산 병렬 처리의 업계 표준인 맵리듀스(MapReduce) 시스템과 분산 파일 시스템인 HDFS를 핵심 구성요소로 가지는 플랫폼 기술
- 여러 대의 컴퓨터를 마치 하나의 시스템인 것처럼 묶어 분산 환경에서 빅데이터를 저장 및 처리할 수 있도록 하는 자바 기반의 오픈소스 프레임워크
2. 하둡 에코 시스템(Hadoop Ecosystem)
- 하둡 프레임워크를 이루고 있는 다양한 서브 프로젝트들의 집합으로, 수집, 저장, 처리기술과 분석, 실시간 SQL 질의 기술로 구분
2-1. 비정형 데이터 수집
- 척와(Chuckwa): 분산된 각 서버에서 에이전트를 실행하고, 컬렉터가 에이전트로부터 데이터를 받아 HDFS에 저장하는 기술
- 플럼(Flume): 많은 양의 로그 데이터를 효율적으로 수집, 집계, 이동하기 위해 이벤트와 에이전트를 활용하는 기술
- 스크라이브(Scribe): 다수의 서버로부터 실시간으로 스트리밍되는 로그 데이터를 수집하여 분산 시스템에 데이터를 저장하는 대용량 실시간 로그 수집 기술
2-2. 정형 데이터 수집
- 스쿱(Sqoop): 대용량 데이터 전송 솔루션으로 커넥터를 사용하여 관계형 데이터베이스 시스템(Rdbms)에서 하둡 파일 시스템(HDFS)으로 데이터를 수집하거나, 하둡 파일 시스템에서 관계형 데이터베이스로 데이터를 보내는 기술
- 히호(Hiho): 스쿱과 같은 대용량 데이터 전송 솔루션으로 하둡에서 데이터를 가져오기 위한 SQL을 지정할 수 있으며, JDBS 인터페이스를 지원
2-3. 분산 데이터 저장
- HDFS: 대용량 파일을 분산된 서버에 저장하고, 그 저장된 데이터를 빠르게 처리할 수 있게 하는 하둡 분산 파일 시스템으로 범용 하드웨어 기반 클러스터에서 실행되고 데이터 접근 패턴을 스트리밍 방식으로 지원하며, 다중 복제, 대량 파일 저장, 온라인 변경, 범용 서버 기반, 자동복구 특징이 있음
구성 | 특징 |
네임노드 | - 마스터 역할 - 모든 메타데이터 관리 - 데이터노드들로부터 하트비트를 받아 상태 체크 |
보조 네임노드 | - 상태 모니터링을 보조함 |
데이터노드 | - 슬레이브 역할 - 데이터 입출력 요청 - 데이터 유실 방지를 위해 블록을 3중 복제 |
< HDFS 구성 요소>
2-4. 분산 데이터베이스
- HBase: HDFS를 기반으로 구현된 컬럼 기반의 분산 데이터베이스로 실시간 랜덤 조회 및 업데이트를 할 수 있으며, 각각의 프로세스는 개인의 데이터를 비동기적으로 업데이트할 수 있음
2-5. 분산 데이터 처리
- 맵리듀스: 대용량 데이터 세트를 분산 병렬 컴퓨팅에서 처리하거나 생성하기 위한 목적으로 만들어진 소프트웨어 프레임워크로 모든 데이터를 키-값(Key-Value) 쌍으로 구성됨
구성 | 특징 |
맵 | Key-Value 형태로 데이터를 취합 |
셔플 | 데이터를 통합하여 처리 |
리듀스 | 맵 처리된 데이터를 정리 |
< HDFS 구성 요소>
2-6. 리소스 관리
- 얀(YARN): 하둡의 맵리듀스 처리 부분을 새롭게 만든 자원 관리 플랫폼으로, 리소스 매니저와 노드 매니저로 구성됨
구성 | 특징 |
리소스 매니저 | 스케줄러 역할을 수행하고, 클러스터 이용률 최적화를 수행 |
노드 매니저 | 노드 내의 자원을 관리하고, 리소스 매니저에게 전달 수행 및 컨테이너를 관리 |
애플리케이션 마스터 | 리소스 매니저와 자원의 교섭을 책임지고,컨테이너를 실행 |
컨테이너 | 프로그램 구동을 위한 격리 환경을 지원하는 가상화 지원 |
< YARN 구성 요소>
2-7. 인메모리 처리
- 아파치 스파크(Apache Spark): 하둡 기반 대규모 데이터 분산처리시스템으로 스트리밍 데이터, 온라인 머신러닝 등 실시간으로 데이터를 처리함
2-8. 데이터 가공
- 피그(Pig): 대요량 데이터 집합을 분석하기 위한 플랫폼으로 하둡을 이용하여 맵리듀스를 사용하기 위한 높은 수준의 스크립트 언어인 피그 라틴이라는 자체 언어를 제공
- 하이브(Hive): 하둡 기반 DW 솔루션으로 SQL과 매우 유사한 HiveQL이라는 쿼리를 제공
2-9. 데이터 마이닝
- 머하웃(Mahout): 하둡 기반으로 데이터 마이닝 알고리즘을 구현한 오픈소스로 분류, 클러스터링, 추천 및 협업 필터링, 패턴 마이닝, 회귀 분석, 진화 알고리즘 등 주요 알고리즘을 지원
2-10. 실시간 SQL 질의
- 임팔라(Impala): 하둡 기반의 실시간 SQL 질의 시스템으로 데이터 조회를 위한 인터페이스로 HiveQL을 사용하며, 수초 내에 SQL 질의 결과를 확인할 수 있으며, HBase와 연동이 가능
- 타조(Tajo): 다양한 데이터 소스를 위한 하둡 기반의 ETL 기술을 이용해서 데이터 웨어하우스에 적재하는 시스템
2-11. 워크플로우 관리
- 우지(Oozie): 하둡 작업을 관리하는 워크플로우 및 코디네이터 시스템
2-12. 분산 코디네이션
- 주키퍼(Zookeeper): 분산 환경에서 서버들 간에 상호 조정이 필요한 다양한 서비스를 제공하는 기술로 하나의 서버에서만 집중되지 않도록 서비스를 알맞게 분산하여 동시에 처리