0%

大数据集群框架Hadoop踩坑(1) HDFS

本篇博文主要记录在Hadoop集群环境中涉及到HDFS的一些坑的记录情况,以及问题的解决。

Q1: Failed to replace a bad datanode on the existing pipeline due to no more good datanodes being available to try.

问题出现在HBase的RegionServer中,具体描述如下:

1
2
3
4
5
6
java.io.IOException: Failed to replace a bad datanode on the existing pipeline due to no more good datanodes being available to try. (Nodes: current=[192.168.1.113:50010, 192.168.1.112:50010], original=[192.168.1.113:50010, 192.168.1.112:50010]). 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.
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.findNewDatanode(DFSOutputStream.java:969)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.addDatanode2ExistingPipeline(DFSOutputStream.java:1035)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.setupPipelineForAppendOrRecovery(DFSOutputStream.java:1184)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.processDatanodeError(DFSOutputStream.java:933)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:487)

笔者的本地集群中有三台DataNode,所以只要当一台DataNode挂了,数据就写不进去,而我们的HBase又是依赖于我们的HDFS的,所以也挂了。

解决:
在hdfs-site.xml文件中增加如下配置:

1
2
3
4
5
6
7
8
<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>

这是打赏的地方...

本文标题:大数据集群框架Hadoop踩坑(1) HDFS

文章作者:Mr.Sun

发布时间:2019年12月02日 - 11:19:47

最后更新:2020年06月10日 - 10:01:44

原始链接:http://www.blog.sun-iot.xyz/posts/bdc37a25

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

---------Thanks for your attention---------