노드 작업
요청
GET /rest/v2/manager/node/frontends
GET /rest/v2/manager/node/backends
GET /rest/v2/manager/node/brokers
GET /rest/v2/manager/node/configuration_name
GET /rest/v2/manager/node/node_list
POST /rest/v2/manager/node/configuration_info
POST /rest/v2/manager/node/set_config/fe
POST /rest/v2/manager/node/set_config/be
POST /rest/v2/manager/node/{action}/be
POST /rest/v2/manager/node/{action}/fe
POST /rest/v2/manager/node/{action}/broker (3.0.7+)
필요한 권한
4.0.8 버전부터 다음 노드 작업 API를 사용하려면 사용자 이름과 비밀번호로 인증해야 하며, 전역 ADMIN 권한이 필요합니다:
POST /rest/v2/manager/node/{action}/bePOST /rest/v2/manager/node/{action}/fePOST /rest/v2/manager/node/{action}/broker
4.0.8 이전에는 이 세 API가 권한 검사를 수행하지 않았으므로, FE HTTP 포트에 접근할 수 있는 모든 호출자가 노드를 추가하거나 제거할 수 있었습니다. 자동화 작업에서 이 API를 호출하는 경우, 4.0.8로 업그레이드한 후 ADMIN 권한이 있는 계정의 인증 정보를 추가하세요(예: curl -u <user>:<passwd>).
같은 버전에서 GET /rest/v2/manager/query/qerror/{id}에도 인증과 사용자 및 쿼리 ID를 기준으로 하는 권한 검사가 추가되었습니다.
fe, be, broker 노드 정보 조회
GET /rest/v2/manager/node/frontends
GET /rest/v2/manager/node/backends
GET /rest/v2/manager/node/brokers
설명
클러스터의 fe, be, broker 노드 정보를 조회합니다.
응답
frontends:
{
"msg": "success",
"code": 0,
"data": {
"column_names": [
"Name",
"IP",
"HostName",
"EditLogPort",
"HttpPort",
"QueryPort",
"RpcPort",
"ArrowFlightSqlPort",
"Role",
"IsMaster",
"ClusterId",
"Join",
"Alive",
"ReplayedJournalId",
"LastHeartbeat",
"IsHelper",
"ErrMsg",
"Version"
],
"rows": [
[
...
]
]
},
"count": 0
}
backends:
{
"msg": "success",
"code": 0,
"data": {
"column_names": [
"BackendId",
"Cluster",
"IP",
"HostName",
"HeartbeatPort",
"BePort",
"HttpPort",
"BrpcPort",
"LastStartTime",
"LastHeartbeat",
"Alive",
"SystemDecommissioned",
"ClusterDecommissioned",
"TabletNum",
"DataUsedCapacity",
"AvailCapacity",
"TotalCapacity",
"UsedPct",
"MaxDiskUsedPct",
"ErrMsg",
"Version",
"Status"
],
"rows": [
[
...
]
]
},
"count": 0
}
brokers:
{
"msg": "success",
"code": 0,
"data": {
"column_names": [
"Name",
"IP",
"HostName",
"Port",
"Alive",
"LastStartTime",
"LastUpdateTime",
"ErrMsg"
],
"rows": [
[
...
]
]
},
"count": 0
}
노드 설정 정보 조회
GET /rest/v2/manager/node/configuration_name
GET /rest/v2/manager/node/node_list
POST /rest/v2/manager/node/configuration_info
설명
configuration_name은 노드 설정 항목의 이름을 조회합니다.node_list는 노드 목록을 조회합니다.configuration_info는 노드의 상세 설정 정보를 조회합니다.
쿼리 매개변수
GET /rest/v2/manager/node/configuration_name
없음
GET /rest/v2/manager/node/node_list
없음
POST /rest/v2/manager/node/configuration_info
-
type
값은 fe 또는 be이며, fe 설정 정보를 조회할지 be 설정 정보를 조회할지 지정합니다.
요청 본문
GET /rest/v2/manager/node/configuration_name
없음
GET /rest/v2/manager/node/node_list
없음
POST /rest/v2/manager/node/configuration_info
{
"conf_name": [
""
],
"node": [
""
]
}
If no body is provided, all parameters in the body use default values.
conf_name is used to specify which configuration items' information to return, defaults to returning all configuration items' information;
node is used to specify which nodes' configuration item information to return, defaults to all fe nodes or be nodes configuration item information.
응답
GET /rest/v2/manager/node/configuration_name
{
"msg": "success",
"code": 0,
"data": {
"backend":[
""
],
"frontend":[
""
]
},
"count": 0
}
GET /rest/v2/manager/node/node_list
{
"msg": "success",
"code": 0,
"data": {
"backend": [
""
],
"frontend": [
""
]
},
"count": 0
}
POST /rest/v2/manager/node/configuration_info?type=fe
{
"msg": "success",
"code": 0,
"data": {
"column_names": [
"配置项",
"节点",
"节点类型",
"配置值类型",
"MasterOnly",
"配置值",
"可修改"
],
"rows": [
[
""
]
]
},
"count": 0
}
POST /rest/v2/manager/node/configuration_info?type=be
{
"msg": "success",
"code": 0,
"data": {
"column_names": [
"配置项",
"节点",
"节点类型",
"配置值类型",
"配置值",
"可修改"
],
"rows": [
[
""
]
]
},
"count": 0
}
예제
-
fe의
agent_task_resend_wait_time_ms설정 항목 정보 조회:POST /rest/v2/manager/node/configuration_info?type=fe본문:
{
"conf_name":[
"agent_task_resend_wait_time_ms"
]
}응답:
{
"msg": "success",
"code": 0,
"data": {
"column_names": [
"配置项",
"节点",
"节点类型",
"配置值类型",
"MasterOnly",
"配置值",
"可修改"
],
"rows": [
[
"agent_task_resend_wait_time_ms",
"127.0.0.1:8030",
"FE",
"long",
"true",
"50000",
"true"
]
]
},
"count": 0
}
설정 값 변경
POST /rest/v2/manager/node/set_config/fe
POST /rest/v2/manager/node/set_config/be
설명
fe 또는 be 노드의 설정 값을 변경합니다.
요청 본문
{
"config_name":{
"node":[
""
],
"value":"",
"persist":
}
}
config_name은 변경할 설정 항목입니다.node는 변경할 노드 목록을 나타내는 키워드입니다.value는 설정 값입니다.persist가 true이면 영구 변경, false이면 임시 변경입니다. 영구 변경은 재시작 후 적용되며, 임시 변경은 재시작하면 무효화됩니다.
응답
GET /rest/v2/manager/node/configuration_name
{
"msg": "",
"code": 0,
"data": {
"failed":[
{
"config_name":"name",
"value"="",
"node":"",
"err_info":""
}
]
},
"count": 0
}
failed는 변경에 실패한 설정 정보를 나타냅니다.
예제
-
fe 127.0.0.1:8030 노드의
agent_task_resend_wait_time_ms및alter_table_timeout_second설정 값 변경:POST /rest/v2/manager/node/set_config/fe본문:
{
"agent_task_resend_wait_time_ms":{
"node":[
"127.0.0.1:8030"
],
"value":"10000",
"persist":"true"
},
"alter_table_timeout_second":{
"node":[
"127.0.0.1:8030"
],
"value":"true",
"persist":"true"
}
}응답:
{
"msg": "success",
"code": 0,
"data": {
"failed": [
{
"config_name": "alter_table_timeout_second",
"node": "10.81.85.89:8837",
"err_info": "Unsupported configuration value type.",
"value": "true"
}
]
},
"count": 0
}agent_task_resend_wait_time_ms설정 값은 성공적으로 변경되었지만,alter_table_timeout_second변경은 실패했습니다.
be 노드 작업
POST /rest/v2/manager/node/{action}/be
설명
be 노드를 추가, 삭제하거나 사용 해제합니다.
action:ADD/DROP/DECOMMISSION
요청 본문
{
"hostPorts": ["127.0.0.1:9050"],
"properties": {
"tag.location": "test"
}
}
hostPorts는 작업을 수행할 be 노드의 주소 목록이며, 주소 형식은ip:heartbeat_port입니다.properties는 노드를 추가할 때 전달하는 설정입니다. 현재는 tag 설정에만 사용되며, 전달하지 않으면 기본 tag를 사용합니다.
응답
{
"msg": "Error",
"code": 1,
"data": "errCode = 2, detailMessage = Same backend already exists[127.0.0.1:9050]",
"count": 0
}
예제
-
be 노드 추가
POST /rest/v2/manager/node/ADD/be요청
{
"hostPorts": ["127.0.0.1:9050"]
}응답
{
"msg": "success",
"code": 0,
"data": null,
"count": 0
} -
be 노드 삭제
POST /rest/v2/manager/node/DROP/be요청
{
"hostPorts": ["127.0.0.1:9050"]
}응답
{
"msg": "success",
"code": 0,
"data": null,
"count": 0
} -
be 노드 사용 해제
POST /rest/v2/manager/node/DECOMMISSION/be요청
{
"hostPorts": ["127.0.0.1:9050"]
}응답
{
"msg": "success",
"code": 0,
"data": null,
"count": 0
}
fe 노드 작업
POST /rest/v2/manager/node/{action}/fe
설명
fe 노드를 추가하거나 삭제합니다.
action:ADD/DROP
요청 본문
{
"role": "FOLLOWER",
"hostPort": "127.0.0.1:9030"
}
role FOLLOWER/OBSERVER
hostPort fe node address to operate ip:edit_log_port
응답
{
"msg": "Error",
"code": 1,
"data": "errCode = 2, detailMessage = frontend already exists name: 127.0.0.1:9030_1670495889415, role: FOLLOWER, 127.0.0.1:9030",
"count": 0
}
예제
-
FOLLOWER 노드 추가
POST /rest/v2/manager/node/ADD/fe요청
{
"role": "FOLLOWER",
"hostPort": "127.0.0.1:9030"
}응답
{
"msg": "success",
"code": 0,
"data": null,
"count": 0
} -
FOLLOWER 노드 삭제
POST /rest/v2/manager/node/DROP/fe요청
{
"role": "FOLLOWER",
"hostPort": "127.0.0.1:9030"
}응답
{
"msg": "success",
"code": 0,
"data": null,
"count": 0
}
broker 노드 작업
POST /rest/v2/manager/node/{action}/broker
3.0.7부터 지원됩니다.
설명
broker 노드를 추가하거나 삭제합니다.
action:ADD/DROP/DROP_ALL
요청 본문
{
"brokerName": "your_broker_name",
"hostPortList": "broker_ip:broker_port"
}
응답
{
"msg": "Error",
"code": 1,
"data": "errCode = 2, detailMessage = xxxx",
"count": 0
}
예제
-
BROKER 노드 추가
POST /rest/v2/manager/node/ADD/broker요청
{
"brokerName": "hdfs_broker",
"hostPortList": "127.0.0.1:8001"
}응답
{
"msg": "success",
"code": 0,
"data": null,
"count": 0
} -
BROKER 노드 삭제
POST /rest/v2/manager/node/DROP/broker요청
{
"brokerName": "hdfs_broker",
"hostPortList": "127.0.0.1:8001"
}응답
{
"msg": "success",
"code": 0,
"data": null,
"count": 0
} -
BROKER 노드 그룹 삭제
POST /rest/v2/manager/node/DROP_ALL/broker요청
{
"brokerName": "hdfs_broker",
"hostPortList": ""
}응답
{
"msg": "success",
"code": 0,
"data": null,
"count": 0
}