如何通过 rest api(或 ambari rest api)捕获活动名称节点 IP
how to capture the active namenode IP by rest api ( or ambari rest api )
我们有版本为 2.6.5
的 HDP 集群,带有 ambari 平台
在集群中我们有两个名称节点,一个是活动的,第二个是备用的
我们要捕获活动名称节点 IP 或活动名称节点主机名
我们尝试以下 API,但没有成功(此 API 不是 return 输出)
curl -sH "X-Requested-By: ambari" -u admin:admin -H "X-Requested-By: ambari" -X GET http://master:8080/api/v1/clusters//services/HDFS
注意 - master 机器是 ambari 服务器机器
我哪里错了?
我今天遇到了同样的问题,我相信 Ambari 会成功的。
所以这是我只使用 Ambari API 的方法。
CLUSTER_LOGIN="$CLUSTER_USER:$CLUSTER_PASSWD"
CLUSTER_NAME=$(curl -s -u "$CLUSTER_LOGIN" -H "X-Requested-By: ambari" -X GET "${CLUSTER_URL}/api/v1/clusters" | jq -r .items[0].Clusters.cluster_name)
NAME_NODES=$(curl -s -u "$CLUSTER_LOGIN" -H "X-Requested-By: ambari" -X GET "${CLUSTER_URL}/api/v1/clusters/${CLUSTER_NAME}/services/HDFS/components/NAMENODE" | jq -r '.host_components[].href')
for nn in $NAME_NODES
do
href_hastate=$(curl -s -u "$CLUSTER_LOGIN" -H "X-Requested-By: ambari" -X GET $nn | jq -r '.host.href +" "+ .metrics.dfs.FSNamesystem.HAState')
host_href=$(echo $href_hastate | tr -s ' ' | cut -f1 -d ' ')
hastate=$(echo $href_hastate | tr -s ' ' | cut -f2 -d ' ')
host_ip_name=$(curl -s -u "$CLUSTER_LOGIN" -H "X-Requested-By: ambari" -X GET $host_href | jq -r '.Hosts | .ip + " " +.host_name')
ip=$(echo $host_ip_name | tr -s ' ' | cut -f1 -d ' ')
node_name=$(echo $host_ip_name | tr -s ' ' | cut -f2 -d ' ')
echo $node_name $ip $hastate
done
它在我的集群中给了我这个结果
hn0-ha004.o0gzzt3sfaaeri0tmljgqkvvdc.cx.internal.chinacloudapp.cn 10.236.111.17 active
hn1-ha004.o0gzzt3sfaaeri0tmljgqkvvdc.cx.internal.chinacloudapp.cn 10.236.111.18 standby
我们有版本为 2.6.5
的 HDP 集群,带有 ambari 平台
在集群中我们有两个名称节点,一个是活动的,第二个是备用的
我们要捕获活动名称节点 IP 或活动名称节点主机名
我们尝试以下 API,但没有成功(此 API 不是 return 输出)
curl -sH "X-Requested-By: ambari" -u admin:admin -H "X-Requested-By: ambari" -X GET http://master:8080/api/v1/clusters//services/HDFS
注意 - master 机器是 ambari 服务器机器
我哪里错了?
我今天遇到了同样的问题,我相信 Ambari 会成功的。
所以这是我只使用 Ambari API 的方法。
CLUSTER_LOGIN="$CLUSTER_USER:$CLUSTER_PASSWD"
CLUSTER_NAME=$(curl -s -u "$CLUSTER_LOGIN" -H "X-Requested-By: ambari" -X GET "${CLUSTER_URL}/api/v1/clusters" | jq -r .items[0].Clusters.cluster_name)
NAME_NODES=$(curl -s -u "$CLUSTER_LOGIN" -H "X-Requested-By: ambari" -X GET "${CLUSTER_URL}/api/v1/clusters/${CLUSTER_NAME}/services/HDFS/components/NAMENODE" | jq -r '.host_components[].href')
for nn in $NAME_NODES
do
href_hastate=$(curl -s -u "$CLUSTER_LOGIN" -H "X-Requested-By: ambari" -X GET $nn | jq -r '.host.href +" "+ .metrics.dfs.FSNamesystem.HAState')
host_href=$(echo $href_hastate | tr -s ' ' | cut -f1 -d ' ')
hastate=$(echo $href_hastate | tr -s ' ' | cut -f2 -d ' ')
host_ip_name=$(curl -s -u "$CLUSTER_LOGIN" -H "X-Requested-By: ambari" -X GET $host_href | jq -r '.Hosts | .ip + " " +.host_name')
ip=$(echo $host_ip_name | tr -s ' ' | cut -f1 -d ' ')
node_name=$(echo $host_ip_name | tr -s ' ' | cut -f2 -d ' ')
echo $node_name $ip $hastate
done
它在我的集群中给了我这个结果
hn0-ha004.o0gzzt3sfaaeri0tmljgqkvvdc.cx.internal.chinacloudapp.cn 10.236.111.17 active
hn1-ha004.o0gzzt3sfaaeri0tmljgqkvvdc.cx.internal.chinacloudapp.cn 10.236.111.18 standby