我可以访问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

更换:
  • CLNAME和您的clusterName
  • HDFS与您的HDFS一起serviceName
  • NN_NAME与您的NameNode 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
    

    哪里:
  • YARN和您的YARN一起serviceName
  • RM_NAME与您的资源管理器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/

    10-16 01:29