java.io.IOException Failed to replace a bad datanode
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)。
流水线上传输数据步骤
客户端向整条流水线的第一个DataNode发送Packet,第一个DataNode收到Packet就向下个DataNode转发,下游DataNode照做。
接收到Packet的DataNode将Packet数据写入磁盘
流水线上最后一个DataNode接收到Packet后向前一个DataNode发送ACK响应,表示自己已经收到Packet,上游DataNode照做
当客户端收到第一个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相关推荐
- 【Hadoop】java.io.IOException: Failed on local exception: java.nio.channels.ClosedByInterruptException
查看日志中的报错信息如下: java.io.IOException: Failed on local exception: java.nio.channels.ClosedByInterruptExc ...
- 解决: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 ...
- java解压报错java.io.IOException: failed to skip current tar entry
#java解压出现java.io.IOException: failed to skip current tar entry 当使用如下函数解压: AntBuilder antBuilder = ne ...
- 解决java.io.IOException: Failed on local exception: com.google.protobuf.InvalidProtocolBufferException
解决 java.io.IOException: Failed on local exception: com.google.protobuf.InvalidProtocolBufferExceptio ...
- jenkins java.io.IOException: Failed to load: Git plugin
jenkins 的插件 http://updates.jenkins-ci.org/download/plugins/ jenkinsci/blueocean的插件 Jenkins Plugins 报 ...
- 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 ...
- 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 ...
- PriviledgedActionException as:Administrator cause:java.io.IOException
在windows下用Eclipse运行MapReduce程序会报错: 12/04/24 15:32:44 WARN util.NativeCodeLoader: Unable to load nati ...
- java openfile busy_android java.io.IOException: open failed: EBUSY (Device or resource busy)
今天遇到一个奇怪的问题, 测试在程序的下载界面,下载一个文件第一次下载成功,删除后再下载结果下载报错, 程序:file.createNewFile(); 报错:java.io.IOException: ...
最新文章
- Cocos2d-x 处理双击事件的两种方法
- Dynamo分布式系统——「RWN」协议解决多备份数据如何读写来保证数据一致性,而「向量时钟」来保证当读取到多个备份数据的时候,如何判断哪些数据是最新的这种情况...
- 深度学习论文资源(截至2016年)
- IE6 PNG 透明的方法
- LeetCode 2053. 数组中第 K 个独一无二的字符串(哈希)
- jq之animate() toggle
- 关于ASP.NET与CLR相互关系的一些总结
- python修改ABAQUS的inp计算文件
- 微信小程序使用其他字体
- 基于matlab的汉明码信道编码,信道编码仿真.doc
- mysql和5g有关系吗_5g和4g有何不同
- 最全Pycharm教程(40)——Pycharm扩展功能之捆绑插件TextMate
- 华为云Debina登录界面输入正确密码却显示认证失败
- 拼搏30天VUE.js之 set(Part8)
- 聊聊CVE漏洞编号和正式公开那些事
- PPT素材不够用,这5个网站帮你解决
- matlab 采样点数,信号频率、采样频率、频率分辨率以及FFT信号补零
- 3V, 256Mb MX25L25673GM2I-08G FLASH - NOR 存储器PDF
- jsp标签与指令总结
- AD硬件电路模块设计——看门狗电路
热门文章
- c++01(数据类型 运算符 选择结构)
- [HSR算法-Occlusion Culling]
- 烽火移动设备管理:企业安全管理无处遁形
- 【C语言关键知识点1】C语言的预处理、编译和链接过程
- Tomcat 基础配置
- Clipboard.js 实现点击复制
- python画残差图_seaborn回归图---回归模型图Implot、线性回归图regplot、线性回归残差图residplot...
- Linux lseek函数
- Atom 修改Atom快捷键 实测可行
- 【ubuntu】在ubuntu上安装QT