REST API

페이지 이동경로

Hadoop Eco API

Hadoop Eco API 사용 방법은 다음과 같습니다.

API 엔드포인트 URL

API 요청을 위한 Hadoop Eco API 엔드포인트 URL은 다음과 같습니다.

코드 예제 Web API 엔드포인트 URL 형식

https://hadoop-eco.kr-central-1.kakaoi.io/

안내
Hadoop Eco API는 현재 kr-central-1 리전만 제공합니다.

클러스터 API

Hadoop Eco 클러스터 API 사용 방법은 다음과 같습니다.

클러스터 생성

Open API Key를 발급받은 클러스터는 API를 사용하여 클러스터를 생성할 수 있습니다.

클러스터 타입이 Core Hadoop인 경우의 Hadoop Eco 클러스터 API Key 발급 조건

  • 작업 스케줄링 활성화가 Hive 또는 Spark인 경우
  • Hadoop Eco 클러스터의 상태가 Terminated(User Command) 또는 Terminated(User)인 경우

Request Syntax

코드 예제 클러스터 생성 Request Syntax

curl -X POST 'https://hadoop-eco.kr-central-1.kakaoi.io/hadoop-eco/v1/cluster/{cluster-id}' \
    --header 'Hadoop-Eco-Api-Key: {hadoop-eco-api-key}' \
    --header 'Credential-ID: {credential-id}' \
    --header 'Credential-Secret: {credential-secret}' \
    --header 'Content-Type: application/json' \
    --data-raw '{
          "workerCnt": 2,
          "workerVolumeSize": 5,
          "configHdfsReplication": 2,
          "configHdfsBlockSize": 128,
          "userTaskDeployMode": "cluster"
          "userTaskExecOpts": "--driver-cores 1 --driver-memory 1024m --executor-cores 1 --num-executors 4 --executor-memory 2048m"
          "userTaskExecParams": "-sparkApplicationParams=testParams"
    }'

API 호출 방식

메서드 요청 URL
PUT https://hadoop-eco.kr-central-1.kakaoi.io/hadoop-eco/v1/cluster/{cluster-id}
Path 타입 필수 여부 설명
cluster-id String 필수 클러스터 ID

Request Header

Request 타입 필수 여부 설명
Credential-ID String 필수 사용자 액세스 Key ID
Credential-Secret String 필수 사용자 액세스 보안 Key
Hadoop-Eco-Api-Key String 필수 Hadoop Eco API key

Request Elements

필수 값은 아니며 기존 클러스터 설정 변경이 필요한 경우 사용할 수 있습니다.

Request 타입 설명
workerCnt Integer Hadoop Eco 워커 노드 개수
- 개수: 1 ~ 1000개
workerVolumeSize Integer Hadoop Eco 워커 노드 블록 스토리지 크기
- 크기: 50 ~ 5120GB
configHdfsReplication Integer Hadoop Eco HDFS 복제 개수
- 개수: 1 ~ 500개
configHdfsBlockSize Integer Hadoop Eco HDFS 블록 크기
- 크기: 1 ~ 1024MB
userTaskDeployMode String Hadoop Eco Spark Job Deploy 모드
- 모드: client, cluster
userTaskExecOpts String Hadoop Eco Hive 설정 파라미터
userTaskExecParams String Hadoop Eco Job 애플리케이션 파라미터

Response Syntax

코드 예제 클러스터 생성 Response Syntax

{
  "clusterId": "58ceed05-e4f5-4a85-b9a6-e9b79ae8dcdf",
  "clusterName": "test-cluster",
  "requestId": "req-f02cf9abc130410ab365e77511db4318",
  "clusterMainSettingValues": {
    "workerCnt": 1,
    "workerVolumeSize": 50,
    "configHdfsReplication": 1,
    "configHdfsBlockSize": 128,
    "jobType": "hive",
    "userTaskDeployMode": null,
    "userTaskExecOpts": "",
    "userTaskExecParams": ""
  }
}

Response Elements

Response 설명
clusterId 생성된 클러스터 ID
clusterName 생성된 클러스터 이름
requestId 요청 ID
clusterMainSettingValues▼ 설정 정보
    workerCnt Hadoop Eco 워커 노드 개수
    workerVolumeSize Hadoop Eco 워커 노드 블록 스토리지 크기
    configHdfsReplication Hadoop Eco HDFS 복제 개수
    configHdfsBlockSize Hadoop Eco HDFS 블록 크기
    jobType 작업 타입
- 타입: Spark, Hive
    userTaskDeployMode Hadoop Eco Spark Job Deploy 모드
    userTaskExecOpts Hadoop Eco Spark or Hive Job 설정 파라미터
    userTaskExecParams Hadoop Eco Spark Application 파라미터

Status Code

HTTP Status 설명
200 성공
202 해당 클러스터 작업(생성) 중
400 요청 정보 오류
401, 403 인증 실패, 권한 없음
404 클러스터를 찾을 수 없음

클러스터 상태 조회

Oepn API Key가 발급된 클러스터의 상태를 조회할 수 있습니다.

Request Syntax

코드 예제 클러스터 상태 조회 Request Syntax

curl -X GET 'https://hadoop-eco.kr-central-1.kakaoi.io/hadoop-eco/v1/cluster/{cluster-id}/request-id/{request-id}' \
    --header 'Hadoop-Eco-Api-Key: {hadoop-eco-api-key}' \
    --header 'Credential-ID: {credential-id}' \
    --header 'Credential-Secret: {credential-secret}' \
    --header 'Content-Type: application/json' 

curl -X GET 'https://hadoop-eco.kr-central-1.kakaoi.io/hadoop-eco/v1/cluster/{cluster-id}/request-id/{request-id}?verbose=true' \
    --header 'Hadoop-Eco-Api-Key: {hadoop-eco-api-key}' \
    --header 'Credential-ID: {credential-id}' \
    --header 'Credential-Secret: {credential-secret}' \
    --header 'Content-Type: application/json' 

API 호출 방식

메서드 요청 URL
GET https://hadoop-eco.kr-central-1.kakaoi.io/hadoop-eco/v1/cluster/{cluster-id}/request-id/{request-id}
Path 타입 필수 여부 설명
cluster-id String 필수 클러스터 ID
request-id String 필수 요청 ID

Query parameters

Request 타입 필수 여부 설명
verbose Boolean 선택 verbose 옵션 설정 시 마스터/워커 노드까지 상태 조회 가능
- true, false, null

Request Header

Request 타입 필수 여부 설명
Credential-ID String 필수 사용자 액세스 Key ID
Credential-Secret String 필수 사용자 액세스 인증 토큰
Hadoop-Eco-Api-Key String 필수 Hadoop Eco API Key

Response Syntax

코드 예제 verbose=fale, null 클러스터 상태 조회 Response Syntax

{
  "clusterId": "58ceed05-e4f5-4a85-b9a6-e9b79ae8dcdf",
  "clusterName": "peb-hadoop-ga-test",
  "requestId": "req-ac2aad4c128d4486bbc34fe4862737cb",
  "requestStatus": "Terminate",
  "requestResult": "Success"
}

코드 예제 verbose=true 클러스터 상태 조회 Response Syntax

{
  "clusterId": "58ceed05-e4f5-4a85-b9a6-e9b79ae8dcdf",
  "clusterName": "peb-hadoop-ga-test",
  "requestId": "req-ac2aad4c128d4486bbc34fe4862737cb",
  "requestStatus": "Terminate",
  "requestResult": "Failure",
  "clusterMeta": {
    "cluster_version": "hde-1.1.0",
    "service_check_timeout": 10,
    "socket_timeout": 5,
    "global_timeout": 1500,
    "monitoring": false,
    "cluster_id": "58ceed05-e4f5-4a85-b9a6-e9b79ae8dcdf",
    "cluster_name": "peb-hadoop-ga-test",
    "cluster_type": "hadoop_single",
    "project": {
      "id": "353094e122d6493d9899f0f2523d4cc1",
      "name": "bigdata",
      "domain": {
        "id": "982fc392699d4385b0b1a9d10b9f2393",
        "name": "kakaoenterprise"
      }
    },
    "master_vm": {
      "host_list": [
        "HadoopMST-peb-hadoop-ga-test-1"
      ],
      "flavor_id": "9b944f27-12fd-4542-8073-e477931c9365",
      "flavor_name": "a1-4-std",
      "key_pair": "bigdata-peb",
      "network": {
        "uuid": "3541a58c-3930-4dcb-8785-0032ff926b80",
        "subnet_id": "be864742-c658-4f7f-8077-9b9138b86df1",
        "security_group_id_list": [
          "73e64d4f-cf71-4be5-8cd5-42e5cb5ccceb",
          "1a21f01b-0437-40ab-a26b-979552555b50"
        ]
      },
      "block_device": {
        "source_type": "image",
        "uuid": "99612215-f9c2-4914-9c76-c8567285675f",
        "volume_size": 50
      },
      "master_active": "HadoopMST-peb-hadoop-ga-test-1",
      "master_standby": "HadoopMST-peb-hadoop-ga-test-1",
      "master_etc": "HadoopMST-peb-hadoop-ga-test-1"
    },
    "worker_vm": {
      "host_list": [],
      "flavor_id": "9b944f27-12fd-4542-8073-e477931c9365",
      "flavor_name": "a1-4-std",
      "key_pair": "bigdata-peb",
      "network": {
        "uuid": "3541a58c-3930-4dcb-8785-0032ff926b80",
        "subnet_id": "be864742-c658-4f7f-8077-9b9138b86df1",
        "security_group_id_list": [
          "73e64d4f-cf71-4be5-8cd5-42e5cb5ccceb",
          "1a21f01b-0437-40ab-a26b-979552555b50"
        ]
      },
      "block_device": {
        "source_type": "image",
        "uuid": "99612215-f9c2-4914-9c76-c8567285675f",
        "volume_size": 50
      }
    },
    "user_cluster_exec_command": {
      "type": "hive",
      "termination_policy": "always",
      "hive_query": "show databases;",
      "exec_opts": "",
      "exec_params": ""
    }
  }
}

Response Elements

Response 설명
clusterId 생성된 클러스터 ID
clusterName 생성된 클러스터 이름
requestId 요청 ID
requestStatus 요청 상태
requestResult 요청 결과
clusterMeta▼ 클러스터 메타 정보
    cluster_version 생성된 클러스터 버전
    service_check_timeout 서비스 timeout 시간
    socket_timeout socket time out 시간
    global_timeout global time out 시간
    monitoring 모니터링 활성화 여부
    cluster_id 클러스터 ID
    cluster_name 클러스터 이름
    cluster_type 클러스터 타입
    project 프로젝트 정보
    id 프로젝트 ID
    name 프로젝트 이름
    project 도메인 정보
    id(domain) 프로젝트가 속한 조직(domian) ID
    name(domain) 프로젝트가 속한 조직(domian) 이름
master_vm▼ 마스터 노드 정보
    host_list 호스트 이름
flavor_id flavor ID
flavor_name flavor 이름
key_pair 키페어 이름
network▼ 네트워크 정보
    uuid(network) 네트워크의 UUID
    subnet_id(network) 서브넷 ID
    security_group_id_list 시큐리티 그룹 ID
block_device▼ 블록 스토리지 정보
    source_type 블록 스토리지 소스 타입
    uuid 블록 스토리지의 UUID
    volume_size 블록 스토리지의 크기
master_active 마스터 노드의 active 서버 이름
master_standby 마스터 노드의 standby 서버 이름
master_etc 마스터 노드의 etc 서버 이름
worker_vm▼ 워커 노드 정보
    host_list 호스트 이름
    flavor_id flavor ID
    flavor_name flavor 이름
    key_pair 키페어 이름
    network 네트워크 정보
    uuid(network) 네트워크 UUID
    subnet_id(network) 서브넷 ID
    security_group_id_list 시큐리티 그룹 ID
user_cluster_exec_command▼ 사용자가 입력한 작업 정보
    type 작업 타입
- Spark, Hive
    termination_policy 작업 종료 동작 정책
-always, onSuccess, never
    hive_query hive 작업 Query
    exec_opts Hive, Spark 설정 값
    exec_params Spark 애플리케이션 파라미터 값

Status Code

HTTP Status 설명
200 성공
400 요청 정보 오류
401, 403 인증 실패, 권한 없음
404 클러스터를 찾을 수 없음