启动hdfs报java.io.IOException: Premature EOF from inputStream错误

本文讲述了作者在测试新搭建的CDH集群HDFS性能时遇到的问题,数据写入过程中因机器故障导致部分数据丢失,随后引发DataNode启动失败。文章详细描述了故障排查过程,涉及数据清理、节点角色重置及YARN问题的解决。
摘要由CSDN通过智能技术生成

缘由:新集群(cdh)搭建好,打算测试一下新集群的hdfs性能,因而使用hdfs自带的测试 hadoop-test-2.6.0-mr1-cdh5.6.1.jar,计划产生10T的数据量进行测试,hadoop jar hadoop-test-2.6.0-mr1-cdh5.6.1.jar TestDFSIO -write -nrFiles 10 -fileSize 10000000 -resFile /tmp/TestDFSIO_results.log;java

因为时间问题,在数据量产生到2T多的时候,集群机器直接关机了,等再次开机时,hdfs启动上有两个datanode起不来,包以下错:node

ERROR DataNode
laydca10:1004:DataXceiver error processing WRITE_BLOCK operation src: /192.168.1.150:33090 dst: /192.168.1.151:1004
java.io.IOException: Premature EOF from inputStream
at org.apache.hadoop.io.IOUtils.readFully(IOUtils.java:203)
at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.doReadFully(PacketReceiver.java:213)
at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.doRead(PacketReceiver.java:134)
at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.receiveNextPacket(PacketReceiver.java:109)
at org.apache.hadoop.hdfs.server.datanode.BlockReceiver.receivePacket(BlockReceiver.java:501)
at org.apache.hadoop.hdfs.server.datanode.BlockReceiver.receiveBlock(BlockReceiver.java:901)
at org.apache.hadoop.hdfs.server.datanode.DataXceiver.writeBlock(DataXceiver.java:808)
at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.opWriteBlock(Receiver.java:169)
at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.processOp(Receiver.java:106)
at org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:246)
at java.lang.Thread.run(Thread.java:748)apache

,后来检查发现,启动不了的这两台datanode下存在几百GB的数据没删除,而后把两台机器上的datanode角色删除,而后把这两台datanode下的几百GB的数据删除,从新添加这两台机器上的datanode角色,发现仍是启动不了;再查看日志发现192.168.1.150和192.168.1.151上的yarn下面有几百MB的数据,怀疑多是因为数据已经删除,可是yarn中的任务注册信息还存在,致使的错误;而后把150和151上的nodemanager角色删除,而后把150和151上的yarn下的数据所有清空,而后从新添加这两个nodemanager角色,在重启yarn和hdfs,hdfs的全部节点就均可以正常启动了。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值