gpt4 book ai didi

hadoop - HttpFs 受益于高可用性和名称服务

转载 作者:可可西里 更新时间:2023-11-01 15:26:59 26 4
gpt4 key购买 nike

我在由三个节点组成的集群上使用 Apache Hadoop-2.7.1

nn1 master name node 
nn2 (second name node)
dn1 (data node)

我们知道如果我们在这个集群中配置高可用

我们会有两个主节点,一个主用,一个备用

如果我们也将集群配置为由名称服务调用,则以下场景就可以了

场景是:

1- nn1 处于事件状态,nn2 处于备用状态

所以如果我们想从 dn1 获取文件(称为 myfile),我们可以从浏览器(webhdfs 请求)发送这个 url

http://nn1/webhdfs/v1/hadoophome/myfile/?user.name=root&op=OPEN

2- nn1 中的名称节点守护进程被终止,因此根据高可用性,nn1 处于备用状态,而 nn2 处于事件状态所以我们现在可以通过将此 Web 请求发送到 nn2 来获取 myfile,因为它现在处于事件状态

http://nn2/webhdfs/v1/hadoophome/myfile/?user.name=root&op=OPEN

因此,配置具有高可用性的名称服务足以应对名称节点故障,并让 webhdfs 正常工作

那么这里加httpfs有什么好处因为不支持高可用性的webhdfs,我们必须配置HTTPFS

最佳答案

我知道这是对您之前问题的跟进 here .

WebHDFSHttpFs 是两个不同的东西。 WebHDFS 是 Namenode 的一部分,它是处理 WebHDFS API 调用的 NN,而 HttpFs 是独立于 Namenode 和HttpFs 服务器处理 API 调用。

what is the benefit of adding httpfs

无论哪个 NN 处于事件状态,您的 REST API 调用都将保持不变。 HttpFs,具有 HA 意识,会将请求定向到当前事件的 NN。

让我们假设 HttpFs 服务器在 nn1 中启动。

WebHDFS GET 请求

curl http://nn1:50070/webhdfs/v1/hadoophome/myfile/?user.name=root&op=OPEN

这是由 nn1 中运行的 Namenode 守护进程提供的。
场景 1:nn1 处于事件状态。该请求将得到有效响应作为奖励。
场景 2:nn2 处于事件状态。发出相同的请求将失败,因为 nn1 中没有运行 Active NN。

因此,必须修改 REST 调用以请求 nn2

curl http://nn2:50070/webhdfs/v1/hadoophome/myfile/?user.name=root&op=OPEN

现在,这将由在 nn2 中运行的 NN 守护进程提供服务。

HttpFs GET 请求

curl http://nn1:14000/webhdfs/v1/hadoophome/myfile/?user.name=root&op=OPEN

此请求由 nn1 中运行的 HttpFs 服务提供服务。
场景 1:nn1 处于事件状态。在 nn1 中运行的 HttpFs 服务器会将请求定向到当前事件的 Namenode nn1
场景 2:nn2 处于事件状态。在 nn1 中运行的 HttpFs 服务器会将请求定向到当前事件的 Namenode nn2

在这两种情况下,REST 调用是相同的。如果 HttpFs 服务器关闭,请求将失败。

configuring name service with high availability is enough for name node failure and for webhdfs to work fine

nameservice 是赋予这对 Namenode 的逻辑名称。此 nameservice 不是实际的 Host,不能用 REST API 调用中的 Host 参数替换。

关于hadoop - HttpFs 受益于高可用性和名称服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43363683/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com