작업 클러스터 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
인 클러스터에 작업 스케줄링을 반복해서 실행합니다.
Request
Request Syntax
- kr-central-1
- kr-central-2
curl -X POST 'https://hadoop-eco.kr-central-1.kakaoi.io/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 '{
"workerCnt": 2,
"workerVolumeSize": 50,
"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"
}'
curl -X POST 'https://hadoop-eco.kr-central-2.kakaocloud.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 '{
"workerCnt": 2,
"workerVolumeSize": 50,
"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 |
---|---|
POST (kr-central-1) | https://hadoop-eco.kr-central-1.kakaoi.io/v2/hadoop-eco/clusters/{cluster-id}/requests/{request-id} |
POST (kr-central-2) | https://hadoop-eco.kr-central-2.kakaocloud.com/v2/hadoop-eco/clusters/{cluster-id}/requests/{request-id} |
종류 | 파라미터 | 유형 | 설명 |
---|---|---|---|
URL | {cluster-id} * | String | 클러스터의 ID - 카카오클라우드 콘솔 > Analytics > Hadoop Eco > 좌측 Cluster 메뉴 > 클러스터 정보 탭에서 확인 가능 |
Request Header
Request | 유형 | 설명 |
---|---|---|
{credential-id} * | String | 사용자의 액세스 키 ID - 카카오클라우드 콘솔 > 우측 상단 프로필 > 액세스 키에서 조회 가능 |
{credential-secret} * | String | 사용자의 보안 액세스 키 - 액세스 키 생성 시에만 확인 가능 - 보안 액세스 키 분실 시, 신규 액세스 키를 발급 필요 |
{hadoop-eco-api-key} * | String | Open API key - 카카오클라우드 콘솔 > Analytics > Hadoop Eco > 좌측 Cluster 메뉴에서, 클러스터 선택 후 우측 상단의 클러스터 작업 > Open API 키 발급에서 발급 가능 - 자세한 설명은 Open API 키 발급 참고 |
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
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": true,
"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 파라미터 |
응답 코드
HTTP Status | 설명 |
---|---|
200 | 성공 |
202 | 해당 클러스터 작업(생성) 중 |
400 | 요청 정보 오류 |
401 , 403 | 인증 실패, 권한 없음 |
404 | 클러스터를 찾을 수 없음 |
작업 클러스터 상세 조회
Open API Key가 발급된 클러스터의 상태를 조회할 수 있습니다.
Request
Request Syntax
- kr-central-1
- kr-central-2
curl -X GET 'https://hadoop-eco.kr-central-1.kakaoi.io/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-central-1.kakaoi.io/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'
curl -X GET 'https://hadoop-eco.kr-central-2.kakaocloud.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-central-2.kakaocloud.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-central-1) | https://hadoop-eco.kr-central-1.kakaoi.io/v2/hadoop-eco/clusters/{cluster-id}/requests/{request-id} |
GET (Kr-central-2) | https://hadoop-eco.kr-central-2.kakaocloud.com/v2/hadoop-eco/clusters/{cluster-id}/requests/{request-id} |
Path | 유형 | 설명 |
---|---|---|
{cluster-id} * | String | 클러스터의 ID - 카카오클라우드 콘솔 > Analytics > Hadoop Eco > 좌측 Cluster 메뉴 > 클러스터 정보 탭에서 확인 가능 |
{request-id} * | String | 작업 클러스터 생성 후 응답으로 받은 requestid 값 |
Query parameters
Request | 유형 | 설명 |
---|---|---|
verbose | Boolean | verbose 옵션 설정 시 마스터/워커 노드까지 상태 조회 가능 - true , false |
Request Header
Request | 유형 | 설명 |
---|---|---|
{credential-id} * | String | 사용자의 액세스 키 ID - 카카오클라우드 콘솔 > 우측 상단 프로필 > 액세스 키에서 조회 가능 |
{credential-secret} * | String | 사용자의 보안 액세스 키 - 액세스 키 생성 시에만 확인 가능 - 보안 액세스 키 분실 시, 신규 액세스 키를 발급 필요 |
{hadoop-eco-api-key} * | String | Open API key - 카카오클라우드 콘솔 > Analytics > Hadoop Eco > 좌측 Cluster 메뉴에서, 클러스터 선택 후 우측 상단의 클러스터 작업 > Open API 키 발급에서 발급 가능 - 자세한 설명은 Open API 키 발급 참고 |
Response
Response Syntax
{
"clusterId": "58ceed05-e4f5-4a85-b9a6-e9b79ae8dcdf",
"clusterName": "peb-hadoop-ga-test",
"requestId": "req-ac2aad4c128d4486bbc34fe4862737cb",
"requestStatus": "Terminate",
"requestResult": "Success"
}