我有一个集群命名节点设置。命名节点配置为主动和被动。
当我调用webhdfs时,要提供的url是
http://:/webhdfs/v1/
因为我有2个命名节点可用,所以我有2个url可用
http://:/webhdfs/v1/-它现在处于活动状态http://:/webhdfs/v1/-它现在处于被动状态
我的问题是:命名节点可以随时进行故障转移。我在主机中提供什么价值?我应该给出服务名称吗?是否有一个通常在hdp平台中配置的虚拟ip来处理重定向?
或者我应该在命名节点前面放置一个负载平衡器或网关,以便在不影响调用应用程序的情况下处理故障转移。
3条答案
按热度按时间vd2z7a6w1#
必须首先确定活动namenode,然后向活动namenode发出webhdfs api请求。向备用namenode发出webhdfs api请求将导致http403错误。
在使用webhdfs时,还没有自动确定活动namenode的方法。您可以使用hdfs命令行客户机来查询配置,或者通过namenodes循环并向`/jmx?qry发出jmxapi请求=hadoop:service=namenode,name=namenodestatus“端点并解析输出。
camsedfj2#
它是一个bug,在ha模式下不工作。
每次nn更改其状态时,必须显式放置活动nn url。
https://hortonworks.jira.com/browse/bug-30030
cetgtptt3#
如果您正在与非活动的namenode交谈,则会出现异常。
在这里看到我的答案了吗?在hadoop中有任何命令可以为nameservice获取活动namenode吗?