클러스터 재작업 API
일반적으로 Hadoop Eco에서는 클러스터가 특정 작업을 완료하면 상태가 Terminated로 변경되며, 이 상태에서는 클러스터를 더 이상 사용할 수 없습니다. 하지만 클러스터 재작업 API를 사용하면 기존에 생성되어 Terminated 상태인 클러스터에서 작업 스케줄링을 반복해서 실행할 수 있습니다.
클러스터 재작업 API는 클러스터의 재사용성을 높이고, 필요할 때마다 새로운 클러스터를 생성하지 않고도 기존 클러스터에서 반복적으로 작업을 수행하여 효율적으로 클러스터를 관리할 수 있도록 지원합니다.
클러스터 재작업 API는 다음과 같은 과정을 통해 동작합니다.
-
클러스터 선택: 콘솔에서 재작업 할 클러스터를 선택합니다. 이는 기존에 생성되어있는 클러스터로,
Terminated상태인 클러스터여야 합니다. -
Open API Key 발급: 클러스터 재작업 API를 사용하려면 카카오클라우드 콘솔에서 해당 클러스터의 Open API Key를 발급받아야 합니다. 이 키는 API 호출 시 클러스터에 접근하고 제어하는 데 필요합니다.
- Open API Key를 발급하면 해당 Open API 클러스터 전용의 보안 그룹이 자동으로 생성되며, API Key를 삭제하면 보안 그룹이 삭제됩니다.
-
클러스터 재작업 API 호출: 발급받은 Open API Key를 사용하여 클러스터 재작업 API를 호출합니다. 이를 통해
Terminated상태의 클러스터에 새로운 작업을 스케줄링하고 실행할 수 있습니다.
API 사용 준비
클러스터 재작업 API를 호출하기 위해서는 액세스 키를 발급받아야 하며, 콘솔에서 Hadoop Eco 클러스터의 Open API Key를 발급받아야 합니다.
작업 클러스터 생성
현재 상태가 Terminated인 클러스터는 키 발급을 통해 Pending 상태로 전환한 후, 작업 재실행(재작업 API 호출)이 가능합니다.
Request
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}* | String | Open API key - 카카오클라우드 콘솔 > Analytics > Hadoop Eco > 좌측 클러스터 메뉴에서, 클러스터 선택 후 우측 상단의 클러스터 작업 > Open API 키 발급에서 발급 가능 - 자세한 설명은 Open API 키 발급 참고 |
Request Elements
필수 값은 아니며 기존 클러스터 설정 변경이 필요한 경우 사용할 수 있습니다.
| 구분 | 유형 | 설명 |
|---|---|---|
| type | MASTER/WORKER/TASK | 노드 타입 |
| nodeCnt | Integer | Hadoop Eco 워커 노드 개수 - 개수: 1 ~ 1,000개 |
| volumeSize | Integer | Hadoop Eco 워커 노드 블록 스토리지 크기 - 크기: 100 ~ 16,384GB |
| hdfsBlockSize | Integer | Hadoop Eco HDFS 복제 개수 - 개수: 1 ~ 500개 |
| hdfsReplication | Integer | Hadoop Eco HDFS 블록 크기 - 크기: 1 ~ 1024MB |
| deployMode | String | Hadoop Eco Spark Job Deploy 모드 - 모드: client, cluster |
| execOpts | String | Hadoop Eco Hive 설정 파라미터 |
| execParams | String | Hadoop Eco Job 애플리케이션 파라미터 |
| securityGroupIds | String | 시큐리티 그룹 ID |
Response
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
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
| 구분 | 유형 | 설명 |
|---|---|---|
| verbose | Boolean | verbose 옵션 설정 시 마스터/워커 노드까지 상태 조회 가능 - true, false |
Request Header
| 구분 | 유형 | 설명 |
|---|---|---|
{credential-id}* | String | 사용자의 액세스 키 ID - 카카오클라우드 콘솔 > 우측 상단 프로필 > 액세스 키에서 조회 가능 |
{credential-secret}* | String | 사용자의 보안 액세스 키 - 액세스 키 생성 시에만 확인 가능 - 보안 액세스 키 분실 시, 신규 액세스 키를 발급하여 확인 필요 |
{hadoop-eco-api-key}* | String | Open API key - 카카오클라우드 콘솔 > Analytics > Hadoop Eco > 좌측 클러스터 메뉴에서, 클러스터 선택 후 우측 상단의 클러스터 작업 > Open API 키 발급에서 발급 가능 - 자세한 설명은 Open API 키 발급 참고 |
Response
Response Syntax
{
"clusterId": "string",
"clusterName": "string",
"requestId": "string",
"requestStatus": "string",
"requestResult": "string"
}
{
"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 시간 |
| flavorName | socket time out 시간 |
| volumeSize | global time out 시간 |
| nodeCnt | 모니터링 활성화 여부 |
| imageName | 이미지 이름 |
| securityGroupIds | 시큐리티그룹 아이디 |
| keypairName | 키 페어 이름 |
| owner | 클러스터 소유자 |
| config▼ | 설정 정보 |
| hdfsBlockSize | HDFS 블록 크기 |
| hdfsReplication | HDFS 복제 개수 |
| configText | 주입한 클러스터 설정 정보 |
| userScript | 주입한 사용자 스크립트 |
| userTask▼ | |
| type | 작업 유형 |
| termination_policy | 작업 스케줄링이 끝난 후 클러스터의 동작 |
| fileUrl | 실행한 작업 파일 위치 |
| hive_query | 실행한 hive 쿼리 문자열 |
| deployMode | spark 작업 배포 모드 |
| exec_opts | 실행한 작업의 옵션 정보 문자열 |
| exec_params | 실행한 작업 파라미터 정보 문자 |
| logUrl | 작업 결과 로그 저장 위치 |
응답 코드
| 코드 | 설명 |
|---|---|
200 | 성공 |
400 | 요청 정보 오류 |
401, 403 | 인증 실패, 권한 없음 |
404 | 클러스터를 찾을 수 없음 |