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

文章目录

  • java.io.IOException: Failed to replace a bad datanode on the existing pipeline due to no more good datanodes being available to try.
    • 1.我在Hadoop,namenode节点里执行追加一个文件到已经存在文件的末尾,这样一个操作时
    • 2.出现原因
    • 3.怎么查看自己已经存在的副本数
    • 4.怎么解决报错
    • 5.什么是 Pipeline(流水线)?

1.我在Hadoop,namenode节点里执行追加一个文件到已经存在文件的末尾,这样一个操作时

hadoop fs -appendToFile ./liubei.txt /sanguo/shuguo/text.txt

我遇到了以下的报错

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

它的意思是,没有办法来替换一个坏掉的DataNode节点,因为在已经存在的流水线里没有一个好的DataNode节点可以来更换

2.出现原因

因为,我的集群共有3个DataNode节点,而我设置的默认副本数是3个。在执行写入到HDFS的操作时,当我的一台Datanode写入失败时,它要保持副本数为3,它就会去寻找一个可用的DataNode节点来写入,可是我的流水线上就只有3 台DataNode节点,所以导致会报错Failed to replace a bad datanode

3.怎么查看自己已经存在的副本数

查看Hadoop配置文件中的hdfs-site.xml(在hadoop目录下的etc/hadoop里)

如果有这几行代码,那就说明你的副本数是3。value标签就是副本数

     <property><name>dfs.replication</name><value>3</value></property>

如果没有的话,那hadoop默认就是3个副本

4.怎么解决报错

在hdfs-site.xml 文件中添加下面几行代码

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

参考apache官方文档得知 NEVER: never add a new datanode.

相当于 设置为NEVER之后,就不会添加新的DataNode

一般来说,集群中DataNode节点小于等于3 都不建议开启

5.什么是 Pipeline(流水线)?

pipeline:就是客户端向DataNode传输数据(Packet)和接受DataNode恢复(ACK)(Acknowledge)

整条流水线由若干个DataNode串联而成,数据由客户端流向PipeLine,在流水线上,假如DataNode A 比 DataNode B 更接近流水线

那么称A在B的上游(Upstream),称B在A的下游(Downstream)。

流水线上传输数据步骤

  1. 客户端向整条流水线的第一个DataNode发送Packet,第一个DataNode收到Packet就向下个DataNode转发,下游DataNode照做。

  2. 接收到Packet的DataNode将Packet数据写入磁盘

  3. 流水线上最后一个DataNode接收到Packet后向前一个DataNode发送ACK响应,表示自己已经收到Packet,上游DataNode照做

  4. 当客户端收到第一个DataNode的ACK,表明此次Packet的传输成功

流水线更多知识,参考这篇文档https://www.cnblogs.com/lqlqlq/p/12321930.html

801)]

流水线更多知识,参考这篇文档https://www.cnblogs.com/lqlqlq/p/12321930.html

java.io.IOException Failed to replace a bad datanode相关推荐

  1. 【Hadoop】java.io.IOException: Failed on local exception: java.nio.channels.ClosedByInterruptException

    查看日志中的报错信息如下: java.io.IOException: Failed on local exception: java.nio.channels.ClosedByInterruptExc ...

  2. 解决:Exception in thread “main“ java.io.IOException: Failed on local exception: com.google.protobuf

    集群上提交运行jar包程序,出现如下错误: Exception in thread "main" java.io.IOException: Failed on local exce ...

  3. java解压报错java.io.IOException: failed to skip current tar entry

    #java解压出现java.io.IOException: failed to skip current tar entry 当使用如下函数解压: AntBuilder antBuilder = ne ...

  4. 解决java.io.IOException: Failed on local exception: com.google.protobuf.InvalidProtocolBufferException

    解决 java.io.IOException: Failed on local exception: com.google.protobuf.InvalidProtocolBufferExceptio ...

  5. jenkins java.io.IOException: Failed to load: Git plugin

    jenkins 的插件 http://updates.jenkins-ci.org/download/plugins/ jenkinsci/blueocean的插件 Jenkins Plugins 报 ...

  6. java.io.IOException: Jenkins Mailer Plugin v1.23 failed to load.(出现Jenkins插件安装报错并且无法成功等问题)

    出现报错情况 java.io.IOException: Jenkins Mailer Plugin v1.23 failed to load.- Display URL API v2.3.2 fail ...

  7. Caused by: java.io.IOException: Keystore was tampered with, or password was incorrect

    启动yarn-session时上报的错误 java.io.IOException: Failed to initialize SSLContext for the blob server at org ...

  8. PriviledgedActionException as:Administrator cause:java.io.IOException

    在windows下用Eclipse运行MapReduce程序会报错: 12/04/24 15:32:44 WARN util.NativeCodeLoader: Unable to load nati ...

  9. java openfile busy_android java.io.IOException: open failed: EBUSY (Device or resource busy)

    今天遇到一个奇怪的问题, 测试在程序的下载界面,下载一个文件第一次下载成功,删除后再下载结果下载报错, 程序:file.createNewFile(); 报错:java.io.IOException: ...

最新文章

  1. Cocos2d-x 处理双击事件的两种方法
  2. Dynamo分布式系统——「RWN」协议解决多备份数据如何读写来保证数据一致性,而「向量时钟」来保证当读取到多个备份数据的时候,如何判断哪些数据是最新的这种情况...
  3. 深度学习论文资源(截至2016年)
  4. IE6 PNG 透明的方法
  5. LeetCode 2053. 数组中第 K 个独一无二的字符串(哈希)
  6. jq之animate() toggle
  7. 关于ASP.NET与CLR相互关系的一些总结
  8. python修改ABAQUS的inp计算文件
  9. 微信小程序使用其他字体
  10. 基于matlab的汉明码信道编码,信道编码仿真.doc
  11. mysql和5g有关系吗_5g和4g有何不同
  12. 最全Pycharm教程(40)——Pycharm扩展功能之捆绑插件TextMate
  13. 华为云Debina登录界面输入正确密码却显示认证失败
  14. 拼搏30天VUE.js之 set(Part8)
  15. 聊聊CVE漏洞编号和正式公开那些事
  16. PPT素材不够用,这5个网站帮你解决
  17. matlab 采样点数,信号频率、采样频率、频率分辨率以及FFT信号补零
  18. 3V, 256Mb MX25L25673GM2I-08G FLASH - NOR 存储器PDF
  19. jsp标签与指令总结
  20. AD硬件电路模块设计——看门狗电路

热门文章

  1. c++01(数据类型 运算符 选择结构)
  2. [HSR算法-Occlusion Culling]
  3. 烽火移动设备管理:企业安全管理无处遁形
  4. 【C语言关键知识点1】C语言的预处理、编译和链接过程
  5. Tomcat 基础配置
  6. Clipboard.js 实现点击复制
  7. python画残差图_seaborn回归图---回归模型图Implot、线性回归图regplot、线性回归残差图residplot...
  8. Linux lseek函数
  9. Atom 修改Atom快捷键 实测可行
  10. 【ubuntu】在ubuntu上安装QT