通过带有数据节点故障转移的webhdfs的webrequest

tvz2xvvm  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(532)

我有hadoop集群,hadoop版本为apache2.7.1
高可用性,由五个节点组成
mn1、mn2、dn1、dn2、dn3
如果我们从浏览器访问wbhdfs来打开一个名为myfile的文件,该文件的复制因子为3,在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请求重定向到活动数据节点吗?如果从应用程序处理这个错误,该如何处理?

hjzp0vay

hjzp0vay1#

编辑hdfs-site.xml

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

其中此属性以毫秒为单位
你会得到50秒的超时时间
因为heartbeat.interval的默认值是3秒
和超时,以将数据节点视为死节点

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

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

相关问题