webrequest via webhdfs with data node failover



我有Hadoop集群与Hadoop版本Apache 2.7.1

高可用性,由五个节点组成

锰1 ,锰2 ,DN1,DN2,DN3

如果我们从浏览器访问 WBHDFS 以打开复制因子 = 3 的名为 myfile 的文件 并在 DN1、DN2 和 DN3 上退出

我们从浏览器发出以下命令

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

因此,MN1 将此请求重定向到 DN1 或 DN2 或 DN3 我们得到文件

我们也可以通过以下命令从Hadoop获取文件

hdfs dfs -cat /hadoophome/myfile 

但在数据节点发生故障的情况下(假设 DN1 和 DN3 现在已关闭)

如果我们发布公报

hdfs dfs -cat /hadoophome/myfile 

我们可以检索文件

但是如果我们从浏览器发出 webhdfs 命令,这就是我的状态

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

mn1 会将请求重定向到已失效的 DN1 或 DN3,有时它会将请求重定向到 DN2,我可以检索文件

不应该 MN1 仅将 WebHDFS 请求重定向到活动数据节点 如何处理此错误 应该从应用程序处理吗?

编辑hdfs-site.xml

<property>
<name>dfs.namenode.heartbeat.recheck-interval</name>
<value>10000</value>
</property>

其中此属性以毫秒为单位进行测量

您将获得 50 秒的超时

因为 检测信号间隔的默认值为 3 秒

和超时将数据节点视为死节点

2 * heartbeat.recheck.interval + 10 * heartbeat.interval

所以 超时 = 2 * (10 秒) + 10 * 3 秒 = 50 秒

相关内容

  • 没有找到相关文章

最新更新