주요 개념
카카오클라우드의 Hadoop Eco는 Hadoop, Hive, HBase, Spark, Trino, Kafka와 같은 오픈 소스 프레임워크를 이용하여 분산 처리 작업을 실행하기 위한 클라우드 플랫폼 서비스입니다. 카카오클라우드에서 제공하는 Virtual Machine을 이용하여 Hadoop, HBase, Trino, Dataflow 프로비저닝 서비스를 제공합니다. Hadoop Eco 서비스의 주요 개념은 다음과 같습니다.
클러스터
클러스터는 Virtual Machine을 이용하여 프로비저닝된 노드들의 집합입니다.
클러스터 유형
Hadoop Eco는 Core Hadoop
, HBase
, Trino
, Dataflow
유형을 제공합니다.
유형 | 설명 |
---|---|
Core Hadoop | Hadoop, Hive, Spark, Tez가 설치됨 - HDFS에 데이터를 저장하고 Hive, Spark를 이용하여 데이터를 분석 |
HBase | Hadoop, HBase가 설치됨 - HDFS에 데이터를 저장하고 HBase를 이용하여 NoSQL 서비스를 제공 |
Trino | Hadoop, Trino, Hive, Tez가 설치됨 - HDFS에 데이터를 저장하고 Trino, Hive를 이용하여 데이터를 분석 |
Dataflow | Hadoop, Kafka, Druid, Superset이 설치됨 - Kafka를 통해 데이터를 수집하고 Druid, Superset을 이용하여 데이터를 분석 |
클러스터 가용성 유형
클러스터의 운영 안정성을 위해 가용성 유형으로 표준(Single) 과 고가용성(HA) 유형을 제공합니다.
가용성 유형 | 설명 |
---|---|
표준(Single) | 1개의 마스터 노드와 여러 개의 워커 노드로 구성 - 마스터 노드가 하나이기 때문에 장애가 발생할 경우 HDFS, YARN이 동작하지 않을 수 있음 |
고가용성(HA: High Availability) | 3개의 마스터 노드와 여러 개의 워커 노드로 구성 - HDFS, YARN이 HA로 구성되어 장애가 발생할 시 자동으로 마스터를 복구 |
클러스터 버전
Hadoop Eco 버전에 따라 설치되는 컴포넌트의 버전이 결정됩니다. HDE 클러스터는 데이터 분석을 위한 Core Hadoop 유형과 HDFS 기반의 NoSQL 서비스 를 제공하기 위한 HBase 유형, HDE 1.1.2 버전부터는 Trino 와 Dataflow 유형을 사용할 수 있습니다. HDE 2.0.1 버전에서는 Hadoop 3.x, HBase 2.x, Hive 3.x 버전을 지원합니다.
클러스터 버전에 따른 유형별 설치 컴포넌트
- Core Hadoop
- HBase
- Trino
- Dataflow
Core Hadoop
HBase
Trino
Dataflow
클러스터 생명주기
Hadoop Eco 클러스터는 다양한 상태와 생명주기를 가지며, 운영 상태와 작업 상태를 확인하고 관리 기능을 수행할 수 있습니다. 최초 생성을 요청한 후 설치/운영/삭제 등의 상태를 생명주기로 표현합니다. 사용자가 클러스터를 작동시키는 것에 따라 클러스터와 인스턴스의 상태는 다를 수 있습니다.
클러스터의 생명주기
클러스터와 노드 상태
상태 | 설명 |
---|---|
Initializing | 사용자 요청 메타 정보가 저장되고, VM 생성을 요청한 상태 |
Creating | VM 생성 중 |
Installing | 생성된 VM에 Hadoop Eco 컴포넌트를 설치 중 |
Starting | Hadoop Eco 컴포넌트가 실행 중 |
Running | 모든 컴포넌트가 실행되어 클러스터가 운영 중인 상태 |
Running(Scale out initializing) | 클러스터 증설 요청으로 인한 VM 생성을 요청한 상태 |
Running(Scale out creating) | VM 생성 중 |
Running(Scale out installing) | 생성된 VM에 Hadoop Eco 컴포넌트를 설치하는 중 |
Running(Scale out starting) | 컴포넌트 실행 중 |
Running(Scale out running) | 기존 클러스터와 증설된 VM의 동작을 확인 중 |
Running(Scale in Initializing) | 클러스터 축소 요청을 받고 대상 VM을 삭제할 수 있는지 확인 중 |
Running(Scale in ready) | 축소 대상 VM의 컴포넌트를 종료하는 중 |
Running(Scale in starting) | 축소 대상 VM의 컴포넌트 종료가 정상적으로 이루어졌는지 검사 중 |
Running(Scale in terminating) | VM 삭제 중 |
Failed to scale out | 증설 대상 VM 생성에 실패한 상태 |
Failed to scale out vm | 증설 대상 VM의 컴포넌트 설치, 실행에 실패한 상태 |
Failed to scale in | 축소 대상 VM 삭제 중 실패한 상태 |
Failed to scale in vm | 축소 대상 VM의 컴포넌트 정상 종료에 실패한 상태 |
Terminating | 클러스터를 종료하는 중 |
Terminated(User) | 사용자가 클러스터를 종료한 상태 |
Terminated(UserCommand) | 작업 스케줄링이 정상적으로 종료되어 클러스터를 종료한 상태 |
Terminated(Scale in) | 클러스터를 축소하고 VM이 정상적으로 종료된 상태 |
Terminated(Error) | 에러가 발생하여 클러스터를 종료한 상태 |
Terminated(Failed to create vm) | VM 생성 중에 에러가 발생한 상태 |
Terminated(Failed to destroy vm) | VM 종료 중에 에러가 발생한 상태 |
Terminated(Check time over) | 컴포넌트 실행 중에 클러스터 생성 시간이 초과된 상태 |
Terminated(Install error) | 클러스터 생성 중 컴포넌트 설치, 실행에 실패하여 종료된 상태 |
Terminated(Failed to scale out) | 클러스터 증설 실패로 인해 VM이 종료된 상태 |
Terminated(Failed to scale in) | 축소 대상 VM 종료에 실패 후 VM이 강제 종료된 상태 |
Terminated(User deleted VM) | 사용자가 Hadoop Eco 클러스터 VM을 임의로 삭제 |
Pending | Open API 활성화 후, Hadoop Eco 생성 요청이 가능한 상태 |
Processing | Open API 활성화 후, Hadoop Eco 생성 및 job scheduling 진행 중 |
인스턴스와 클러스터 상태
인스턴스는 클러스터를 구성하는 카카오클라우드의 Virtual Machine으로, 인스턴스와 클러스터의 상태는 다를 수 있습니다.
인스턴스와 클러스터의 상태가 다른 경우는 다음과 같습니다.
- 마스터 노드의 인스턴스가
Active
상태가 아닌 경우, 클러스터 가용성 유형이Single
이면 클러스터가 정상적으로 동작하지 않습니다. - 가용성 유형이
HA
인 경우, 마스터 1번/2번 노드 인스턴스 중 하나의 노드 인스턴스가Active
상태면 정상적으로 운영될 수 있습니다.
컴포넌트
Hadoop Eco 클러스터에서 실행되는 컴포넌트 목록은 다음과 같습니다.
Core Hadoop
- 표준(Single)
- HA(고가용성)
위치 | 컴포넌트 | 주소 |
---|---|---|
마스터 1번 | HDFS 네임 노드 | HDE-2.0.0 미만 : http://{HadoopMST-cluster-1} :50070 HDE-2.0.0 이상 : http://{HadoopMST-cluster-1} :9870 |
YARN 리소스 매니저 | http://{HadoopMST-cluster-1} :8088 | |
TimelineServer | http://{HadoopMST-cluster-1} :8188 | |
JobHistoryServer | http://{HadoopMST-cluster-1} :19888 | |
SparkHistoryServer | http://{HadoopMST-cluster-1} :18082 | |
SparkThriftServer | http://{HadoopMST-cluster-1} :20000 | |
Tez UI | http://{HadoopMST-cluster-1} :9999 | |
HiveServer2 (HS2) | http://{HadoopMST-cluster-1} :10002 | |
Hue | http://{HadoopMST-cluster-1} :8888 | |
Zeppelin | http://{HadoopMST-cluster-1} :8180 | |
Oozie | http://{HadoopMST-cluster-1} :11000 |
위치 | 컴포넌트 | 주소 |
---|---|---|
마스터 1번 | HDFS 네임 노드 | HDE-2.0.0 미만 : http://{HadoopMST-cluster-1} :50070HDE-2.0.0 이상 : http://{HadoopMST-cluster-1} :9870 |
YARN 리소스 매니저 | http://{HadoopMST-cluster-1} :8088 | |
HiveServer2 (HS2) | http://{HadoopMST-cluster-1} :10002 | |
마스터 2번 | HDFS 네임 노드 | HDE-2.0.0 미만 : http://{HadoopMST-cluster-2} :50070HDE-2.0.0 이상 : http://{HadoopMST-cluster-2} :9870 |
YARN 리소스 매니저 | http://{HadoopMST-cluster-2} :8088 | |
HiveServer2 (HS2) | http://{HadoopMST-cluster-2} :10002 | |
마스터 3번 | TimelineServer | http://{HadoopMST-cluster-3} :8188 |
JobHistoryServer | http://{HadoopMST-cluster-3} :19888 | |
SparkHistoryServer | http://{HadoopMST-cluster-3} :18082 | |
SparkThriftServer | http://{HadoopMST-cluster-1} :20000 | |
Tez UI | http://{HadoopMST-cluster-3} :9999 | |
HiveServer2 (HS2) | http://{HadoopMST-cluster-3} :10002 | |
Hue | http://{HadoopMST-cluster-3} :8888 | |
Zeppelin | http://{HadoopMST-cluster-3} :8180 | |
Oozie | http://{HadoopMST-cluster-3} :11000 |
HBase
- 표준(Single)
- HA(고가용성)
위치 | 컴포넌트 | 주소 |
---|---|---|
마스터 1번 | HDFS 네임 노드 | HDE-2.0.0 미만 : http://{HadoopMST-cluster-1} :50070 HDE-2.0.0 이상 : http://{HadoopMST-cluster-1} :9870 |
YARN 리소스 매니저 | http://{HadoopMST-cluster-1} :8088 | |
HMaster | http://{HadoopMST-cluster-1} :16010 | |
TimelineServer | http://{HadoopMST-cluster-1} :8188 | |
JobHistoryServer | http://{HadoopMST-cluster-1} :19888 | |
Hue | http://{HadoopMST-cluster-1} :8888 |
위치 | 컴포넌트 | 주소 |
---|---|---|
마스터 1번 | HDFS 네임 노드 | HDE-2.0.0 미만 : http://{HadoopMST-cluster-1} :50070 HDE-2.0.0 이상 : http://{HadoopMST-cluster-1} :9870 |
YARN 리소스 매니저 | http://{HadoopMST-cluster-1} :8088 | |
HMaster | http://{HadoopMST-cluster-1} : 16010 | |
마스터 2번 | HDFS 네임 노드 | HDE-2.0.0 미만 : http://{HadoopMST-cluster-2} :50070 HDE-2.0.0 이상 : http://{HadoopMST-cluster-2} :9870 |
YARN 리소스 매니저 | http://{HadoopMST-cluster-2} :8088 | |
HMaster | http://{HadoopMST-cluster-2} :16010 | |
마스터 3번 | HMaster | http://{HadoopMST-cluster-3} :16010 |
TimelineServer | http://{HadoopMST-cluster-3} :8188 | |
JobHistoryServer | http://{HadoopMST-cluster-3} :19888 | |
Hue | http://{HadoopMST-cluster-3} :8888 |
Trino
- 표준(Single)
- HA(고가용성)
위치 | 컴포넌트 | 주소 |
---|---|---|
마스터 1번 | HDFS 네임 노드 | HDE-2.0.0 미만 : http://{HadoopMST-cluster-1} :50070HDE-2.0.0 이상 : http://{HadoopMST-cluster-1} :9870 |
YARN 리소스 매니저 | http://{HadoopMST-cluster-1} :8088 | |
Trino Coordinator | http://{HadoopMST-cluster-1} :8780 | |
TimelineServer | http://{HadoopMST-cluster-1} :8188 | |
JobHistoryServer | http://{HadoopMST-cluster-1} :19888 | |
Tez UI | http://{HadoopMST-cluster-1} :9999 | |
HiveServer2 (HS2) | http://{HadoopMST-cluster-1} :10002 | |
Hue | http://{HadoopMST-cluster-1} :8888 | |
Zeppelin | http://{HadoopMST-cluster-1} :8180 |
위치 | 컴포넌트 | 주소 |
---|---|---|
마스터 1번 | HDFS 네임 노드 | HDE-2.0.0 미만 : http://{HadoopMST-cluster-1} :50070 HDE-2.0.0 이상 : http://{HadoopMST-cluster-1} :9870 |
YARN 리소스 매니저 | http://{HadoopMST-cluster-1} :8088 | |
HiveServer2 (HS2) | http://{HadoopMST-cluster-1} :10002 | |
마스터 2번 | HDFS 네임 노드 | HDE-2.0.0 미만 : http://{HadoopMST-cluster-2} :50070 HDE-2.0.0 이상 : http://{HadoopMST-cluster-2} :9870 |
YARN 리소스 매니저 | http://{HadoopMST-cluster-2} :8088 | |
HiveServer2 (HS2) | http://{HadoopMST-cluster-2} :10002 | |
마스터 3번 | Trino Coordinator | http://{HadoopMST-cluster-3} : 8780 |
TimelineServer | http://{HadoopMST-cluster-3} :8188 | |
JobHistoryServer | http://{HadoopMST-cluster-3} :19888 | |
Tez UI | http://{HadoopMST-cluster-3} :9999 | |
HiveServer2 (HS2) | http://{HadoopMST-cluster-3} :10002 | |
Hue | http://{HadoopMST-cluster-3} :8888 | |
Zeppelin | http://{HadoopMST-cluster-3} :8180 |
Dataflow
- 표준(Single)
- HA(고가용성)
위치 | 컴포넌트 | 주소 |
---|---|---|
마스터 1번 | HDFS 네임 노드 | HDE-2.0.0 미만 : http://{HadoopMST-cluster-1} :50070 HDE-2.0.0 이상 : http://{HadoopMST-cluster-1} :9870 |
YARN 리소스 매니저 | http://{HadoopMST-cluster-1} :8088 | |
TimelineServer | http://{HadoopMST-cluster-1} :8188 | |
JobHistoryServer | http://{HadoopMST-cluster-1} :19888 | |
Kafka 브로커 | http://{HadoopMST-cluster-1} :9092 | |
Druid 마스터 | http://{HadoopMST-cluster-1} :3001 | |
Druid 브로커 | http://{HadoopMST-cluster-1} :3002 | |
Druid 라우터 | http://{HadoopMST-cluster-1} :3008 | |
Superset | http://{HadoopMST-cluster-1} :4000 | |
Hue | http://{HadoopMST-cluster-1} :8888 |
위치 | 컴포넌트 | 주소 |
---|---|---|
마스터 1번 | HDFS 네임 노드 | HDE-2.0.0 미만 : http://{HadoopMST-cluster-1} :50070HDE-2.0.0 이상 : http://{HadoopMST-cluster-1} :9870 |
YARN 리소스 매니저 | http://{HadoopMST-cluster-1} :8088 | |
Kafka 브로커 | http://{HadoopMST-cluster-1} :9092 | |
Druid 마스터 | http://{HadoopMST-cluster-1} :3001 | |
Druid 브로커 | http://{HadoopMST-cluster-1} :3002 | |
마스터 2번 | HDFS 네임 노드 | HDE-2.0.0 미만 : http://{HadoopMST-cluster-2} :50070HDE-2.0.0 이상 : http://{HadoopMST-cluster-2} :9870 |
YARN 리소스 매니저 | http://{HadoopMST-cluster-2} :8088 | |
Kafka 브로커 | http://{HadoopMST-cluster-2} :9092 | |
Druid 마스터 | http://{HadoopMST-cluster-2} :3001 | |
Druid 브로커 | http://{HadoopMST-cluster-2} :3002 | |
마스터 3번 | TimelineServer | http://{HadoopMST-cluster-3} :8188 |
JobHistoryServer | http://{HadoopMST-cluster-3} :19888 | |
Kafka 브로커 | http://{HadoopMST-cluster-3} :9092 | |
Druid 마스터 | http://{HadoopMST-cluster-3} :3001 | |
Druid 브로커 | http://{HadoopMST-cluster-3} :3002 | |
Druid 라우터 | http://{HadoopMST-cluster-3} :3008 | |
Superset | http://{HadoopMST-cluster-3} :4000 | |
Hue | http://{HadoopMST-cluster-3} :8888 |
인스턴스
인스턴스는 클러스터 목록에서 확인할 수 있으며, 일반 VM 동작과 동일하게 처리할 수 있습니다.
안정적인 운영을 위해 마스터 노드 인스턴스는 16GB 이상, 워커 노드 인스턴스는 32GB 이상을 권장합니다.
볼륨
볼륨은 인스턴스를 만들 때 이미지가 구성되는 기본 스토리지로, HDFS의 용량입니다. HDFS의 안정적인 운영을 위해서 적절한 사이즈를 선택해야 합니다. 볼륨에 대한 자세한 설명은 볼륨 생성 및 관리 문서를 참고하시기 바랍니다.
네트워크와 보안
Hadoop Eco에서 생성하는 모든 인스턴스는 VPC 환 경에서 제공합니다. 클러스터를 구성하기 위해서 보안 그룹을 생성해야 하고, 컴포넌트 구성을 위한 인바운드를 설정해야 클러스터를 생성할 수 있습니다. 네트워크와 보안 설정에 대한 자세한 설명은 보안 그룹을 참고하시기 바랍니다.