he current failed datanode replacement policy is DEFAULT报错

hadoop
The current failed datanode replacement policy is DEFAULT, and a client may configure this via ‘dfs.client.block.write.replace-datanode-on-failure.policy’ in its configuration报错
解决办法:修改hdfs-site.xml文件
添加

 <property>
 <name>dfs.client.block.write.replace-datanode-on-failure.enable</name>
<value>true</value>
</property>

<property>
<name>dfs.client.block.write.replace-datanode-on-failure.policy</name>
<value>NEVER</value>
</property>

相关四个参数
参考网址官方文档

参数 默认值 含义
dfs.client.block.write.replace-datanode-on-failure.enable true 功能:删除故障节点时,向管道pipline加入新的datanode 当集群大小非常小(3个以下)可以把下面那个policy参数设置成NEVER或者禁用此功能。否则无法找到要替换的节点
dfs.client.block.write.replace-datanode-on-failure.policy DEFAULT 上面那个enable参数是true才有用。几个选项 ALWAYS:删除故障节点后总是添加一个;NEVER:永远不这么这么做;DEFALUT:令r为副本数,n为现有datanod数。当r大于或等于3并且floor(r/2)大于或等于n时,オ添加新的 datanode
dfs.client.block.write.replace-datanode-on-failure.best-effort false 上面那个enable参数是true才有用。客户端将尝试替换写管道中发生故障的数据节点,但是如果数据节点替换也失败,客户端将继续执行写操作。假设数据节点替换失败。false:抛出写入失败的异常。true:应该使用其余数据恢复写操作。请注意,将此属性设置为true允许写入具有较少数据节点数量的管道。增加了数据丢失的可能性。
dfs.client.block.write.replace-datanode-on-failure.min-replication 0 如果找不到新的数据节点来替换写管道中发生故障的数据节点,则不使写管道发生故障所需的最小复制次数。如果写管道中剩余的数据节点数大于或等于此属性值,请继续写入剩余的节点。否则抛出异常。如果将其设置为0,则在找不到替换项时将引发异常

你可能感兴趣的:(hadoop)