我在由三个节点组成的集群上使用 Apache Hadoop-2.7.1
nn1 master name node
nn2 (second name node)
dn1 (data node)
我们知道如果我们在这个集群中配置高可用
我们将有两个主节点,一个是活动的,另一个是备用的
如果我们也将集群配置为由名称服务调用,那么以下场景就可以了
情况是:
1- nn1 处于活动状态,而 nn2 处于待机状态
所以如果我们想从 dn1 获取文件(称为 myfile),我们可以从浏览器发送这个 url(webhdfs 请求)
http://nn1/webhdfs/v1/hadoophome/myfile/?user.name=root&op=OPEN
2- nn1 中的名称节点守护程序被杀死,因此根据高可用性,nn1 处于待机状态,而 nn2 处于活动状态,因此我们现在可以通过向 nn2 发送此 Web 请求来获取 myfile,因为它现在处于活动状态
http://nn2/webhdfs/v1/hadoophome/myfile/?user.name=root&op=OPEN
因此配置具有高可用性的名称服务足以解决名称节点故障并让 webhdfs 正常工作
那么在这里添加httpfs有什么好处,因为不支持高可用性的webhdfs,我们必须配置httpfs