我有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 秒