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 |
---|---|
POST | 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 | 클러스터를 찾을 수 없음 |