본문 바로가기

Hadoop

[Hadoop] 하둡(Hadoop): 대규모 분산 병렬 처리

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): 분산 환경에서 서버들 간에 상호 조정이 필요한 다양한 서비스를 제공하는 기술로 하나의 서버에서만 집중되지 않도록 서비스를 알맞게 분산하여 동시에 처리