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

缘由:新集群(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、付费专栏及课程。

余额充值