1. Hadoop 이란?
- High Availability Distributed Object Oriented Platform
- 고가용성 분산형 객체 지향적 플랫폼
2. Hadoop Ecosystem
Apache Hadoop 소프트웨어 라이브러리를 이루는 다양한 구성 요소
1) Hadoop
- 클러스터 전체에 대규모 데이터세트를 분산처리할 수 있는 프레임워크
2) Ambari
- 리소스 할당, 관리, 모니터링 하기위한 웹 기반 대시보드
3) Zeppelin Notebook
- 코드 작성, 실행, 결과확인, 수정이 가능한 웹 기반 작업환경
- Spark CLI 환경을 GUI 환경으로 제공함으로써 불편함 해소
- 확장성 : Spark, Livy, Cassandra, Lens 등 데이터분석도구 지원
SQL 데이터베이스에 접근하여 쿼리 가능
4) HUE
- Hadoop User Experience
- 클러스터에서 실행되는 어플리케이션의 Frontend를 지원하는 웹 기반 작업환경
- Hive Editor, Pig Editor, Spark Job, HDFS Browser, HBase Browser 기능 지원
3) HDFS
- Hadoop Distributed File System
- 어플리케이션 데이터에 대한 높은 처리량 액세스를 제공하는 분산 파일 시스템
4) Yarn
- Yet Another Resource Negotiator
- Job 스케줄링과 클러스터 컴퓨팅 리소스를 관리하기 위한 프레임워크
5) HBase
- 분산되고 확장 가능한 대용량 데이터 저장소
- 대형 테이블을 위한 구조화된 데이터 저장
7) Hive
- SQL을 사용하여 분산 스토리지에 있는 대규모 데이터 세트의 읽기, 쓰기 및 관리할 수 있는 데이터웨어하우스 S/W
- 데이터 요약 및 애드혹 쿼리 제공
6) Spark
- 대규모 데이터 처리를 위한 통합 분석 엔진
- ETL, ML, 스트림 처리 및 그래프 계산 등 애플리케이션을 지원하는 간단하고 표현력이 풍부한 프로그래밍 모델을 제공
8) Presto
- 빅데이터용 분산 SQL 쿼리 엔진
9) Pig
- 대용량 데이터 세트 분석 플랫폼
- MapReduce를 사용하기 위한 고급 언어 스크립트와 인프라로 구성됨
- 여러 개의 테이블을 조인하여 MapReduce를 하는 경우 성능 최적화
10) MapReduce
- 클러스터에서 병렬 분산 알고리즘으로 빅 데이터 세트를 처리하고 생성하기 위한 프로그래밍 모델 및 구현
- Map : 서로 연관성 있는 데이터를 Key-Value 형태로 분류하는 작업
- Reduce : Key 값 기준으로 분산처리되어 있는 데이터를 List 형태로 조합하는 작업
11) Oozie
- Hadoop job을 관리하기 위한 서버 기반의 워크플로우 스케줄링 시스템
- 여러 개의 MapReduce job을 서로 연결하는 경우, 각 job의 시작과 종료 및 분기조건을 지정하여 자동화하거나 스케줄링할 수 있음
12) Sqoop
- SQL to Hadoop
- 관계형 데이터베이스와 Hadoop 간에 데이터를 전송할 수 있도록 설계된 오픈소스 S/W
- RDBMS <-> HDFS 데이터 이관
13) Zookeeper
- 하둡의 Coordination 서비스를 이용하여 분산환경에서 노드들간의 정보 공유, 락(Lock), 이벤트 등 보조 기능 수행
- 네임노드의 상태 정보(Active/Standby)를 저장하여 관리
- 최소 서버 3대 구성 필요
3. 아키텍처
1) Cloud Hadoop Cluster 생성 시, Object Storage 버킷 생성 필요
- Block Storage : 메인 저장소
초기 생성한 용량은 변경 불가
- Object Storage : 설정 백업 또는 대용량 데이터 보관 및 이전 용도
선택적 사용 가능
데이터저장량과 네트워크전송량을 합산하여 비용 청구
4. 서비스 포트
※ Hadoop v3.x 기준
0) Ambari
- WEB, REST API : 8080/HTTP
- Server <-> Agent
-- Handshake : 8440/HTTPS
-- Registration & Heartbeat : 8441/HTTPS
- SMS : 25/TCP (알람)
0) HDFS
- Master Node
-- WEB UI : 9870/HTTP (NameNode)
9871/HTTPS
-- API : 9820/IPC
9000/IPC
- Worker Node
-- Secondary WEB UI : 9869/HTTP (HDFS 보조)
9868/HTTP (NameNode 메타데이터 체크포인트)
-- DataNode WEB UI : 9864/HTTP (DataNode 상태 및 로그 확인)
9865/HTTPS
9866/HTTP (데이터 전송)
9867/IPC (HDFS 메타데이터 운영)
※ IPC(InterProcess Communication) : 프로세스간 통신 및 데이터 공유
0) YARN
- Master Node
-- WEB UI : 8088/HTTP (Resource Manager WEB UI)
-- Schedular Interface : 8030/HTTP
-- API : 8031/HTTP, 8032/IPC
-- Admin Interface : 8033/HTTP
- Worker Node
-- WEB UI : 8042/HTTP (Node Manager WEB UI)
-- Localizer : 8040/IPC (Node Manager Localizer)
0) MapReduce
- 19888/HTTP
//Hadoop2.0 : Core Hadoop with Spark : HDFS(3.1.1), YARN(3.1.1), Zookeeper(3.4.9), Ranger(2.0.0), HIVE(3.1.2), Hue(4.8.0), Zeppelin Notebook(0.10.1), Spark (2.4.8), HBase(2.2.6), Impala(4.1.0), KUDU(1.16.0), TRINO(377)
5. 비용
[참고]
1) https://www.gov-ncloud.com/product/analytics/cloudHadoop
'NCloud > Services' 카테고리의 다른 글
[NCloud] 100% 활용하는 Cloud Insight 의 정석 Hands-on Lab.1 (1) | 2023.09.12 |
---|---|
[NCloud] HyperCLOVA X 에 대해서 알아보자 (2) | 2023.08.29 |
[NCloud] Cloud DB for MySQL을 생성해보자 (1) | 2023.08.14 |
[NCloud] Search Engine Service 클러스터를 생성해보자 (0) | 2023.08.11 |
[NCloud] Cloud Hadoop 클러스터를 생성해보자 (0) | 2023.08.08 |