본문으로 건너뛰기

클러스터 재작업 API

일반적으로 Hadoop Eco에서는 클러스터가 특정 작업을 완료하면 상태가 Terminated로 변경되며, 이 상태에서는 클러스터를 더 이상 사용할 수 없습니다. 하지만 클러스터 재작업 API를 사용하면 기존에 생성되어 Terminated 상태인 클러스터에서 작업 스케줄링을 반복해서 실행할 수 있습니다.

클러스터 재작업 API는 클러스터의 재사용성을 높이고, 필요할 때마다 새로운 클러스터를 생성하지 않고도 기존 클러스터에서 반복적으로 작업을 수행하여 효율적으로 클러스터를 관리할 수 있도록 지원합니다.

클러스터 재작업 API는 다음과 같은 과정을 통해 동작합니다.

  1. 클러스터 선택: 콘솔에서 재작업 할 클러스터를 선택합니다. 이는 기존에 생성되어있는 클러스터로, Terminated 상태인 클러스터여야 합니다.

  2. Open API Key 발급: 클러스터 재작업 API를 사용하려면 카카오클라우드 콘솔에서 해당 클러스터의 Open API Key를 발급받아야 합니다. 이 키는 API 호출 시 클러스터에 접근하고 제어하는 데 필요합니다.

    • Open API Key를 발급하면 해당 Open API 클러스터 전용의 보안 그룹이 자동으로 생성되며, API Key를 삭제하면 보안 그룹이 삭제됩니다.
  3. 클러스터 재작업 API 호출: 발급받은 Open API Key를 사용하여 클러스터 재작업 API를 호출합니다. 이를 통해 Terminated 상태의 클러스터에 새로운 작업을 스케줄링하고 실행할 수 있습니다.

API 사용 준비

클러스터 재작업 API를 호출하기 위해서는 액세스 키를 발급받아야 하며, 콘솔에서 Hadoop Eco 클러스터의 Open API Key를 발급받아야 합니다.

작업 클러스터 생성

현재 상태가 Terminated인 클러스터는 키 발급을 통해 Pending 상태로 전환한 후, 작업 재실행(재작업 API 호출)이 가능합니다.

Request

Request Syntax

(kr-gov-central-1) 클러스터 생성 Request Syntax
curl -X POST 'https://hadoop-eco.kr-gov-central-1.kakaocloud-kr-gov.com/v2/hadoop-eco/clusters/{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 '
{
"instanceSpecs": [
{
"type": "WORKER|TASK",
"nodeCnt": integer,
"volumeSize": integer
}
],
"config": {
"hdfsBlockSize": integer,
"hdfsReplication": integer
},
"userTaskInfo": {
"deployMode": "string",
"execOpts": "string",
"execParams": "string"
},
"securityGroupIds": ["string"]
}'

API 호출 방식

구분요청 URL
POST (kr-gov-central-1)https://hadoop-eco.kr-gov-central-1.kakaocloud-kr-gov.com/v2/hadoop-eco/clusters/{cluster-id}
구분유형설명
{cluster-id}*String클러스터의 ID
- 카카오클라우드 콘솔 > Analytics > Hadoop Eco > 좌측 클러스터 메뉴 > 클러스터 정보 탭에서 확인 가능

Request Header

구분유형설명
{credential-id}*String사용자의 액세스 키 ID
- 카카오클라우드 콘솔 > 우측 상단 프로필 > 액세스 키에서 조회 가능
{credential-secret}*String사용자의 보안 액세스 키
- 액세스 키 생성 시에만 확인 가능
- 보안 액세스 키 분실 시, 신규 액세스 키를 발급하여 확인 필요
{hadoop-eco-api-key}*StringOpen API key
- 카카오클라우드 콘솔 > Analytics > Hadoop Eco > 좌측 클러스터 메뉴에서,
 클러스터 선택 후 우측 상단의 클러스터 작업 > Open API 키 발급에서 발급 가능
- 자세한 설명은 Open API 키 발급 참고

Request Elements

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

구분유형설명
typeMASTER/WORKER/TASK노드 타입
nodeCntIntegerHadoop Eco 워커 노드 개수
- 개수: 1 ~ 1,000개
volumeSizeIntegerHadoop Eco 워커 노드 블록 스토리지 크기
- 크기: 100 ~ 16,384GB
hdfsBlockSizeIntegerHadoop Eco HDFS 복제 개수
- 개수: 1 ~ 500개
hdfsReplicationIntegerHadoop Eco HDFS 블록 크기
- 크기: 1 ~ 1024MB
deployModeStringHadoop Eco Spark Job Deploy 모드
- 모드: client, cluster
execOptsStringHadoop Eco Hive 설정 파라미터
execParamsStringHadoop Eco Job 애플리케이션 파라미터
securityGroupIdsString시큐리티 그룹 ID

Response

Response Syntax

클러스터 생성 Response Syntax
{
"clusterId": "string",
"clusterName": "string",
"requestId": "string"
}

Response Elements

구분설명
clusterId생성된 클러스터 ID
clusterName생성된 클러스터 이름
requestId작업 요청 ID
응답 코드
코드설명
200  성공
202해당 클러스터 작업(생성) 중
400요청 정보 오류
401, 403인증 실패, 권한 없음
404클러스터를 찾을 수 없음

작업 클러스터 상세 조회

클러스터 재작업 API를 호출한 클러스터의 상세 정보를 조회합니다.

Request

Request Syntax

(kr-gov-central-1) 클러스터 상태 조회 Request Syntax
curl -X GET 'https://hadoop-eco.kr-gov-central-1.kakaocloud-kr-gov.com/v2/hadoop-eco/clusters/{cluster-id}/requests/{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-gov-central-1.kakaocloud-kr-gov.com/v2/hadoop-eco/clusters/{cluster-id}/requests/{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 (kr-gov-central-1)https://hadoop-eco.kr-gov-central-1.kakaocloud-kr-gov.com/v2/hadoop-eco/clusters/{cluster-id}/requests/{request-id}
구분유형설명
{cluster-id}*String클러스터의 ID
- 카카오클라우드 콘솔 > Analytics > Hadoop Eco > 좌측 클러스터 메뉴 > 클러스터 정보 탭에서 확인 가능
{request-id}*String작업 클러스터 생성 후 응답으로 받은 requestid

Query Parameter

구분유형설명
verboseBooleanverbose 옵션 설정 시 마스터/워커 노드까지 상태 조회 가능
- true, false

Request Header

구분유형설명
{credential-id}*String사용자의 액세스 키 ID
- 카카오클라우드 콘솔 > 우측 상단 프로필 > 액세스 키에서 조회 가능
{credential-secret}*String사용자의 보안 액세스 키
- 액세스 키 생성 시에만 확인 가능
- 보안 액세스 키 분실 시, 신규 액세스 키를 발급하여 확인 필요
{hadoop-eco-api-key}*StringOpen API key
- 카카오클라우드 콘솔 > Analytics > Hadoop Eco > 좌측 클러스터 메뉴에서,
 클러스터 선택 후 우측 상단의 클러스터 작업 > Open API 키 발급에서 발급 가능
- 자세한 설명은 Open API 키 발급 참고

Response

Response Syntax

verbose=false로 설정 시, 클러스터 정보 조회 Response Syntax
{
"clusterId": "string",
"clusterName": "string",
"requestId": "string",
"requestStatus": "string",
"requestResult": "string"
}
verbose=true로 설정 시, 클러스터 정보 조회 Response Syntax
{
"clusterId": "string",
"clusterName": "string",
"requestId": "string",
"requestStatus": "string",
"requestResult": "string",
"clusterType": "string",
"clusterVersion": "string",
"isHa": true|false,
"installComponents": [
   "string"
],
"masterInfo": [
{
"instanceGroupId": "string",
"flavorId": "string",
"flavorName": "string",
"volumeSize": integer,
"nodeCnt": integer
}
],
"workerInfo": [
{
"instanceGroupId": "string",
"flavorId": "string",
"flavorName": "string",
"volumeSize": integer,
"nodeCnt": integer
}
],
"taskInfo": [
{
"instanceGroupId": "string",
"flavorId": "string",
"flavorName": "string",
"volumeSize": integer,
"nodeCnt": integer
}
],
"imageName": "string",
"securityGroupIds": [
"string"
],
"keypairName": "string",
"owner": "string",
"config": {
"hdfsBlockSize": integer,
"hdfsReplication": integer,
"configText": "string",
"userScript": "string"
},
"userTask": {
"type": "string",
"terminationPolicy": "string",
"fileUrl": "string",
"hiveQuery": "string",
"deployMode": "string",
"execOpts": "string",
"execParams": "string",
"logUrl": "string"
}
}

Response Elements

구분설명
clusterId클러스터 아이디
clusterName클러스터 이름
requestId요청 ID
requestStatus요청 상태
requestResult요청 결과
clusterType생성된 클러스터 타입
clusterVersion생성된 클러스터 버전
isHa고가용성 여부
installComponents설치된 컴포넌트
masterInfo/workerInfo/taskInfo▼인스턴스 그룹 정보
    instanceGroupId생성된 클러스터 버전
    flavorId서비스 timeout 시간
    flavorNamesocket time out 시간
    volumeSizeglobal time out 시간
    nodeCnt모니터링 활성화 여부
imageName이미지 이름
securityGroupIds시큐리티그룹 아이디
keypairName키 페어 이름
owner클러스터 소유자
config▼설정 정보
    hdfsBlockSizeHDFS 블록 크기
    hdfsReplicationHDFS 복제 개수
    configText주입한 클러스터 설정 정보
    userScript주입한 사용자 스크립트
userTask▼
    type작업 유형
    termination_policy작업 스케줄링이 끝난 후 클러스터의 동작
    fileUrl실행한 작업 파일 위치
    hive_query실행한 hive 쿼리 문자열
    deployModespark 작업 배포 모드
    exec_opts실행한 작업의 옵션 정보 문자열
    exec_params실행한 작업 파라미터 정보 문자
    logUrl작업 결과 로그 저장 위치
응답 코드
코드설명
200  성공
400요청 정보 오류
401, 403인증 실패, 권한 없음
404클러스터를 찾을 수 없음