Introduction
HTTP requests should set the "Content-Type" header to "application/json" for most calls, unless specified otherwise.
Authentication
The Cloudera Manager API uses HTTP basic access authentication. It accepts the same user credentials as the web interface. Different users may have different level of access, as defined by their roles. (See the user management API calls for more.) With every authenticated request, the server returns a session cookie, which can be subsequently used for authentication.
Error Code
The API returns HTTP code in the 400s and 500s upon errors:
- 400 — Invalid request parameters; Malformed requests
- 401 — Authentication failure
- 403 — Authorization failure
- 404 — Object not found
- 500 — Internal API error
- 503 — Response temporarily unavailable; caller should retry later
See /tools/echoError for a discussion on the body of an error response.
API Usage Tutorial
API Version
The API can be queried for the latest version it supports. By making a GET request to the '/version' URL, a string will be returned with the highest supported version (for example, "v2").
Note that servers that only support API v1 do not support this call. In that case, a 404 error will be returned, and can be used to detect that the server only supports v1.
The version should be prepended to the path of the REST resources listed below. The documentation of the different resources lists the version which added the particular functionality.
REST Resources
This API supports a Representational State Transfer (REST) model for accessing a set of resources through a fixed set of operations. The following resources are accessible through the RESTful model:
- /clusters
- /clusters/{clusterName}
- /clusters/{clusterName}/commands
- /clusters/{clusterName}/commands/deployClientConfig
- /clusters/{clusterName}/commands/enterMaintenanceMode
- /clusters/{clusterName}/commands/exitMaintenanceMode
- /clusters/{clusterName}/commands/restart
- /clusters/{clusterName}/commands/start
- /clusters/{clusterName}/commands/stop
- /clusters/{clusterName}/commands/upgradeServices
- /clusters/{clusterName}/services
- /clusters/{clusterName}/services/{serviceName}
- /clusters/{clusterName}/services/{serviceName}/activities
- /clusters/{clusterName}/services/{serviceName}/activities/{activityId}
- /clusters/{clusterName}/services/{serviceName}/activities/{activityId}/children
- /clusters/{clusterName}/services/{serviceName}/activities/{activityId}/metrics
- /clusters/{clusterName}/services/{serviceName}/activities/{activityId}/similar
- /clusters/{clusterName}/services/{serviceName}/clientConfig
- /clusters/{clusterName}/services/{serviceName}/commands
- /clusters/{clusterName}/services/{serviceName}/commands/createOozieDb
- /clusters/{clusterName}/services/{serviceName}/commands/decommission
- /clusters/{clusterName}/services/{serviceName}/commands/deployClientConfig
- /clusters/{clusterName}/services/{serviceName}/commands/enterMaintenanceMode
- /clusters/{clusterName}/services/{serviceName}/commands/exitMaintenanceMode
- /clusters/{clusterName}/services/{serviceName}/commands/hbaseCreateRoot
- /clusters/{clusterName}/services/{serviceName}/commands/hdfsCreateTmpDir
- /clusters/{clusterName}/services/{serviceName}/commands/hdfsDisableAutoFailover
- /clusters/{clusterName}/services/{serviceName}/commands/hdfsDisableHa
- /clusters/{clusterName}/services/{serviceName}/commands/hdfsEnableAutoFailover
- /clusters/{clusterName}/services/{serviceName}/commands/hdfsEnableHa
- /clusters/{clusterName}/services/{serviceName}/commands/hdfsFailover
- /clusters/{clusterName}/services/{serviceName}/commands/hueCreateHiveWarehouse
- /clusters/{clusterName}/services/{serviceName}/commands/recommission
- /clusters/{clusterName}/services/{serviceName}/commands/restart
- /clusters/{clusterName}/services/{serviceName}/commands/start
- /clusters/{clusterName}/services/{serviceName}/commands/stop
- /clusters/{clusterName}/services/{serviceName}/commands/zooKeeperCleanup
- /clusters/{clusterName}/services/{serviceName}/commands/zooKeeperInit
- /clusters/{clusterName}/services/{serviceName}/config
- /clusters/{clusterName}/services/{serviceName}/metrics
- /clusters/{clusterName}/services/{serviceName}/nameservices
- /clusters/{clusterName}/services/{serviceName}/nameservices/{nameservice}
- /clusters/{clusterName}/services/{serviceName}/nameservices/{nameservice}/metrics
- /clusters/{clusterName}/services/{serviceName}/roleCommands/hdfsBootstrapStandBy
- /clusters/{clusterName}/services/{serviceName}/roleCommands/hdfsFormat
- /clusters/{clusterName}/services/{serviceName}/roleCommands/hdfsInitializeAutoFailover
- /clusters/{clusterName}/services/{serviceName}/roleCommands/hdfsInitializeSharedDir
- /clusters/{clusterName}/services/{serviceName}/roleCommands/hueSyncDb
- /clusters/{clusterName}/services/{serviceName}/roleCommands/refresh
- /clusters/{clusterName}/services/{serviceName}/roleCommands/restart
- /clusters/{clusterName}/services/{serviceName}/roleCommands/start
- /clusters/{clusterName}/services/{serviceName}/roleCommands/stop
- /clusters/{clusterName}/services/{serviceName}/roleCommands/zooKeeperCleanup
- /clusters/{clusterName}/services/{serviceName}/roleCommands/zooKeeperInit
- /clusters/{clusterName}/services/{serviceName}/roles
- /clusters/{clusterName}/services/{serviceName}/roles/{roleName}
- /clusters/{clusterName}/services/{serviceName}/roles/{roleName}/commands
- /clusters/{clusterName}/services/{serviceName}/roles/{roleName}/commands/enterMaintenanceMode
- /clusters/{clusterName}/services/{serviceName}/roles/{roleName}/commands/exitMaintenanceMode
- /clusters/{clusterName}/services/{serviceName}/roles/{roleName}/config
- /clusters/{clusterName}/services/{serviceName}/roles/{roleName}/logs/full
- /clusters/{clusterName}/services/{serviceName}/roles/{roleName}/logs/stderr
- /clusters/{clusterName}/services/{serviceName}/roles/{roleName}/logs/stdout
- /clusters/{clusterName}/services/{serviceName}/roles/{roleName}/metrics
- /clusters/{clusterName}/services/{serviceName}/roleTypes
- /cm/commands
- /cm/commands/collectDiagnosticData
- /cm/commands/generateCredentials
- /cm/commands/hostsDecommission
- /cm/commands/hostsRecommission
- /cm/commands/hostsStartRoles
- /cm/commands/inspectHosts
- /cm/config
- /cm/deployment
- /cm/license
- /cm/log
- /cm/service
- /cm/service/commands
- /cm/service/commands/restart
- /cm/service/commands/start
- /cm/service/commands/stop
- /cm/service/config
- /cm/service/roleCommands/restart
- /cm/service/roleCommands/start
- /cm/service/roleCommands/stop
- /cm/service/roles
- /cm/service/roles/{roleName}
- /cm/service/roles/{roleName}/commands
- /cm/service/roles/{roleName}/config
- /cm/service/roleTypes
- /cm/version
- /commands/{commandId}
- /commands/{commandId}/abort
- /events
- /events/{eventId}
- /hosts
- /hosts/{hostId}
- /hosts/{hostId}/commands/enterMaintenanceMode
- /hosts/{hostId}/commands/exitMaintenanceMode
- /hosts/{hostId}/config
- /hosts/{hostId}/metrics
- /tools/echo
- /tools/echoError
- /users
- /users/{userName}
There is also a WADL document describing the REST API.
Data Model
All endpoints act on a common set of data. The Cloudera Manager API uses JSON.
Data Elements
- activity
- activityList
- bulkCommandList
- cluster
- clusterList
- clusterRef
- cmVersionInfo
- collectDiagnosticDataArgs
- command
- commandList
- config
- configList
- deployment
- echoMessage
- event
- eventQueryResult
- hdfsDisableHaArgs
- hdfsFailoverArgs
- hdfsHaArgs
- healthCheck
- host
- hostList
- hostNames
- license
- metric
- metricData
- metricList
- nameservice
- nameserviceList
- role
- roleList
- roleNames
- roleRef
- roleTypeConfig
- roleTypeList
- service
- serviceConfig
- serviceList
- serviceRef
- user
- userList