热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

hadoop修复hdfs中文件块错误和文件修复Error:java.io.IOException:CannotobtainblocklengthforLocatedBlock

一:问题Error:java.io.IOException:CannotobtainblocklengthforLocatedBlockError:java.io.I

一:问题 Error: java.io.IOException: Cannot obtain block length for LocatedBlock

Error: java.io.IOException: Cannot obtain block length for LocatedBlock{BP-1241298414-127.0.0.1-1523601065028:blk_1073766720_25914; getBlockSize()=1077; corrupt=false; offset=0; locs=[DatanodeInfoWithStorage[172.16.144.58:50010,DS-69e6b461-59df-4e19-90ff-e766c0e3535c,DISK], DatanodeInfoWithStorage[172.16.112.83:50010,DS-3cef3847-e522-4b28-a84e-ff5ec9f2b02a,DISK]]}at org.apache.hadoop.hdfs.DFSInputStream.readBlockLength(DFSInputStream.java:444)at org.apache.hadoop.hdfs.DFSInputStream.fetchLocatedBlocksAndGetLastBlockLength(DFSInputStream.java:351)at org.apache.hadoop.hdfs.DFSInputStream.openInfo(DFSInputStream.java:282)at org.apache.hadoop.hdfs.DFSInputStream.(DFSInputStream.java:272)at org.apache.hadoop.hdfs.DFSClient.open(DFSClient.java:1132)at org.apache.hadoop.hdfs.DistributedFileSystem$4.doCall(DistributedFileSystem.java:329)at org.apache.hadoop.hdfs.DistributedFileSystem$4.doCall(DistributedFileSystem.java:326)at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)at org.apache.hadoop.hdfs.DistributedFileSystem.open(DistributedFileSystem.java:326)at org.apache.hadoop.fs.FileSystem.open(FileSystem.java:914)at org.apache.hadoop.mapreduce.lib.input.LineRecordReader.initialize(LineRecordReader.java:85)at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.initialize(MapTask.java:554)at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:792)at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:177)at java.security.AccessController.doPrivileged(Native Method)at javax.security.auth.Subject.doAs(Subject.java:422)at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1886)at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:171)

二:解决办法:

1、找出出问题的文件

输入下面命令:

hdfs fsck /logs/product/desktop-ecommerce/2018-05-31 -openforwrite

结果:

Connecting to namenode via http://master:11070/fsck?ugi=root&openforwrite=1&path=%2Flogs%2Fproduct%2Fdesktop-ecommerce%2F2018-05-31FSCK started by root (auth:SIMPLE) from /172.16.199.39 for path /logs/product/desktop-ecommerce/2018-05-31 at Fri Jun 01 09:33:35 CST 2018../logs/product/desktop-ecommerce/2018-05-31/FlumeData.1527714183563 1077 bytes, 1 block(s), OPENFORWRITE: .Status: HEALTHYTotal size: 5336068 BTotal dirs: 1Total files: 4Total symlinks: 0Total blocks (validated): 4 (avg. block size 1334017 B)Minimally replicated blocks: 3 (75.0 %)Over-replicated blocks: 0 (0.0 %)Under-replicated blocks: 0 (0.0 %)Mis-replicated blocks: 0 (0.0 %)Default replication factor: 2Average block replication: 1.5Corrupt blocks: 0Missing replicas: 0 (0.0 %)Number of data-nodes: 2Number of racks: 1FSCK ended at Fri Jun 01 09:33:35 CST 2018 in 1 milliseconds

找到了问题文件:/logs/product/desktop-ecommerce/2018-05-31/FlumeData.1527714183563


三:对文件执行修复命令

hdfs debug recoverLease -path /logs/product/desktop-ecommerce/2018-05-31/FlumeData.1527714183563 -retries 3


四:再次执行mapreduce程序 没有报错 完美解决问题!


推荐阅读
author-avatar
MrSydi2u_604
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有