我有一个集群命名节点设置。命名节点配置为主动和被动。
当我进行 WEBHDFS 调用时,要提供的 URL 是
http://:/webhdfs/v1/
由于我有 2 个命名节点可用,所以我有 2 个 URL 可用
http://:/webhdfs/v1/- 现在处于活动状态http://:/webhdfs/v1/- 现在是被动的
我的问题是:命名节点可以随时故障转移。我在主机中提供什么值?我应该提供服务名称吗?是否有通常在HDP平台中配置的虚拟IP负责重定向?
或者,我应该在命名节点前面放置一个负载均衡器或网关,以便在不影响调用应用程序的情况下处理故障转移。
错误,它在 HA 模式下不起作用。
每次 NN 更改其状态时,都必须显式放置活动的 NN URL。
https://hortonworks.jira.com/browse/BUG-30030
如果您正在与非活动的 namenode 通信,您将收到异常。
在这里看到我的答案 任何命令可以在 hadoop 中获取名称服务的活动名称节点?
您必须先确定活动的Namenode,然后向活动的Namenode发出WebHDFS API请求。向备用名称节点发出 WebHDFS API 请求将导致 HTTP 403 错误。
目前还没有自动确定使用WebHDFS时活动Namenode的方法。您可以使用 hdfs 命令行客户端来查询配置,或者,遍历 Namenode 并向 '/jmx?qry=Hadoop:service=NameNode,name=NameNodeStatus" 端点发出 JMX API 请求并解析输出。