我可以访问Cloudera Manager rest API。
curl -u username:password http://cmhost:port/api/v10/clusters/clusterName
如何找到 Activity 的名称节点和资源管理员主机名?
我找不到与API文档相关的任何内容。
http://cloudera.github.io/cm_api/apidocs/v10/index.html
注意:集群配置为高可用性
最佳答案
您需要使用此端点:
http://cloudera.github.io/cm_api/apidocs/v10/path__clusters_-clusterName-services-serviceName-roles-roleName-.html
然后执行以下操作:
For each Name Node:
$ curl -u username:password \
http://cmhost:port/api/v10/clusters/CLNAME/services/HDFS/roles/NN_NAME
更换:
clusterName
serviceName
name
这将返回apiRole对象,该对象具有一个名为
haStatus
的字段。显示“ACTIVE”的是 Activity 的NameNode。对于资源管理器,执行类似的步骤:
For each Resource Manager:
$ curl -u username:password \
http://cmhost:port/api/v10/clusters/CLNAME/services/YARN/roles/RM_NAME
哪里:
serviceName
name
拥有正确的NameNode和Resource Manager之后,请使用:
http://cloudera.github.io/cm_api/apidocs/v10/path__hosts_-hostId-.html
将
hostId
映射到主机名。关于hadoop - 如何从Cloudera Manager REST API获取事件的namenode主机名?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47078341/