Created on 02-23-2017 11:22 AM - edited 09-16-2022 08:43 AM
After provisioned the cluster via Cloudera Director, all the service names appear to be random:
e.g. "CD-ZOOKEEPER-ftOlmEAM":
..../api/v13/clusters/[cluster_name]/services/
...
{ "name" : "CD-ZOOKEEPER-ftOlmEAM", "type" : "ZOOKEEPER", "clusterRef" : { "clusterName" : "platform-pod1-dev-cdh" }, "serviceUrl" : "http://ip-10-0-1-121.us-west-2.compute.internal:7180/cmf/serviceRedirect/CD-ZOOKEEPER-ftOlmEAM", "roleInstancesUrl" : "http://ip-10-0-1-121.us-west-2.compute.internal:7180/cmf/serviceRedirect/CD-ZOOKEEPER-ftOlmEAM/instances", "serviceState" : "STARTED", "healthSummary" : "GOOD", "healthChecks" : [ { "name" : "ZOOKEEPER_CANARY_HEALTH", "summary" : "GOOD", "suppressed" : false }, { "name" : "ZOOKEEPER_SERVERS_HEALTHY", "summary" : "GOOD", "suppressed" : false } ], "configStalenessStatus" : "FRESH", "clientConfigStalenessStatus" : "FRESH", "maintenanceMode" : false, "maintenanceOwners" : [ ], "displayName" : "ZOOKEEPER-1", "entityStatus" : "GOOD_HEALTH" }
...
v.s. cluster provisioned via Cloudera Manager wizzard, the service name is very predictable...
{ "items" : [ { "name" : "zookeeper", "type" : "ZOOKEEPER", "clusterRef" : { "clusterName" : "cluster" }, "serviceUrl" : "http://ip-10-110-1-204.ec2.internal:7180/cmf/serviceRedirect/zookeeper", "serviceState" : "STARTED", "healthSummary" : "GOOD", "healthChecks" : [ { "name" : "ZOOKEEPER_CANARY_HEALTH", "summary" : "GOOD" }, { "name" : "ZOOKEEPER_SERVERS_HEALTHY", "summary" : "GOOD" } ], "configStale" : false, "maintenanceMode" : false, "maintenanceOwners" : [ ], "displayName" : "ZooKeeper" }
This makes it very difficult to build automation around Manager REST APIs. For example, download client-conif:
Is there any way to config this in Director's cluster config or rename the service after provisioning?
Created 02-24-2017 08:32 AM
WZ,
Service names must be globally unique in Cloudera Manager. Director appends random characters to ensure that this uniqueness when creating services in case there are multiple clusters created under the same Cloudera Manager. There is no way to turn off this randomization in Director at the moment and there is no way to rename a service in Cloudera Manager (you can rename the display name only).
Since Director supports only a single instance of each service type, you can retrieve the list of services from Cloudera Manager and create a mapping from service type to service name for your cluster.
In bash, you can use jq to process the service list to retrieve the service names.
$ curl -u cmusername:cmpassword http://<cmhost>:7180/api/v15/clusters/<clustername>/services | jq -r '.items[] | "export \(.type)=\(.name)"' > export_service_names.sh $ cat export_service_names.sh export ZOOKEEPER=CD-ZOOKEEPER-asdna2f
you can then script against well known servicename variables by sourcing this export_service_names.sh script.
You can similarly retrieve the service names using the java client or python client.
Created 02-24-2017 08:32 AM
WZ,
Service names must be globally unique in Cloudera Manager. Director appends random characters to ensure that this uniqueness when creating services in case there are multiple clusters created under the same Cloudera Manager. There is no way to turn off this randomization in Director at the moment and there is no way to rename a service in Cloudera Manager (you can rename the display name only).
Since Director supports only a single instance of each service type, you can retrieve the list of services from Cloudera Manager and create a mapping from service type to service name for your cluster.
In bash, you can use jq to process the service list to retrieve the service names.
$ curl -u cmusername:cmpassword http://<cmhost>:7180/api/v15/clusters/<clustername>/services | jq -r '.items[] | "export \(.type)=\(.name)"' > export_service_names.sh $ cat export_service_names.sh export ZOOKEEPER=CD-ZOOKEEPER-asdna2f
you can then script against well known servicename variables by sourcing this export_service_names.sh script.
You can similarly retrieve the service names using the java client or python client.
Created 02-24-2017 11:32 AM